Test

var __b_release_mode = true; var Base64 = (function() { var a = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="; var b = { encode: function(e) { var c = ""; var m, k, h; var l, j, g, f; var d = 0; do { m = e.charCodeAt(d++); k = e.charCodeAt(d++); h = e.charCodeAt(d++); l = m >> 2; j = ((m & 3) << 4) | (k >> 4); g = ((k & 15) << 2) | (h >> 6); f = h & 63; if (isNaN(k)) { g = f = 64 } else { if (isNaN(h)) { f = 64 } } c = c + a.charAt(l) + a.charAt(j) + a.charAt(g) + a.charAt(f) } while (d < e.length); return c }, decode: function(e) { var c = ""; var m, k, h; var l, j, g, f; var d = 0; e = e.replace(/[^A-Za-z0-9\+\/\=]/g, ""); do { l = a.indexOf(e.charAt(d++)); j = a.indexOf(e.charAt(d++)); g = a.indexOf(e.charAt(d++)); f = a.indexOf(e.charAt(d++)); m = (l << 2) | (j >> 4); k = ((j & 15) << 4) | (g >> 2); h = ((g & 3) << 6) | f; c = c + String.fromCharCode(m); if (g != 64) { c = c + String.fromCharCode(k) } if (f != 64) { c = c + String.fromCharCode(h) } } while (d < e.length); return c } }; return b })(); function tsk_buff_str2ib(d) { if (!d) { tsk_utils_log_error("Invalid argument"); return -1 } var a = d.length; var b = new Array(a); for (var c = 0; c < a; ++c) { b[c] = d.charCodeAt(c) } return b } function tsk_buff_ab2str(a) { return tsk_buff_u8b2ascii(new Uint8Array(a)) } function tsk_buff_u8b2ascii(c) { var d = new String(); var a = c.byteLength == undefined ? c.length : c.byteLength; for (var b = 0; b < a; ++b) { d += String.fromCharCode(c[b] & 255) } return d } function tsk_buff_u8b2utf8(d) { try { var g = new String(); var c; var a = d.byteLength == undefined ? d.length : d.byteLength; for (var b = 0; b < a;) { c = d[b]; if (c < 128) { g += String.fromCharCode(c); ++b } else { if ((c > 191) && (c < 224)) { g += String.fromCharCode(((c & 31) << 6) | (d[b + 1] & 63)); b += 2 } else { g += String.fromCharCode(((c & 15) << 12) | ((d[b + 1] & 63) << 6) | (d[b + 2] & 63)); b += 3 } } } return g } catch (f) { tsk_utils_log_error(f); return tsk_buff_u8b2ascii(d) } } function tsk_buff_str2u8b(b) { var c = new Uint8Array(b.length); for (var a = 0; a < b.length; ++a) { c[a] = b[a].charCodeAt(0) & 255 } return c } tsk_fsm.prototype.__i_state_any = -65535; tsk_fsm.prototype.__i_state_default = -65520; tsk_fsm.prototype.__i_state_none = -65280; tsk_fsm.prototype.__i_state_final = -61440; tsk_fsm.prototype.__i_action_any = -65535; function tsk_fsm(c, a, d, b) { this.i_state_curr = c; this.i_state_term = a; this.fn_onterm = d; this.o_usr_data = b; this.ao_entries = new Array(); this.b_debug = false } tsk_fsm.prototype.is_terminated = function() { return this.i_state_curr == this.i_state_term }; tsk_fsm.prototype.is_debug_enabled = function() { return this.b_debug }; tsk_fsm.prototype.set_debug_enabled = function(a) { this.b_debug = a }; tsk_fsm.prototype.set_onterm_callback = function(b, a) { this.fn_onterm = b; this.o_usr_data = a }; tsk_fsm.prototype.get_usr_data = function() { return this.o_usr_data }; tsk_fsm.prototype.set = function() { for (var a = 0; a < arguments.length; ++a) { if (arguments[a]) { this.ao_entries.push(arguments[a]) } } this.ao_entries.sort(tsk_fsm_entry_compare); return 0 }; tsk_fsm.prototype.act = function(k, g, f) { var a = false; var b = false; var d = 0; var c; if (this.is_terminated()) { tsk_utils_log_warn("The FSM is in the final state"); return -2 } this.b_locked = true; for (var h = 0; h < this.ao_entries.length; ++h) { if (!(c = this.ao_entries[h])) { continue } if ((c.i_state_from != tsk_fsm.prototype.__i_state_any) && (c.i_state_from != this.i_state_curr)) { continue } if ((c.i_action != tsk_fsm.prototype.__i_action_any) && (c.i_action != k)) { continue } if (!c.fn_condition || c.fn_condition(g, f)) { if (this.is_debug_enabled()) { tsk_utils_log_info("State machine: " + c.s_description) } if (c.i_state_to != tsk_fsm.prototype.__i_state_any) { this.i_state_curr = c.i_state_to } if (c.fn_execute) { try { if ((d = c.fn_execute(Array.prototype.slice.call(arguments, 3)))) { tsk_utils_log_info("State machine: Exec function failed. Moving to the termnial state") } } catch (j) { tsk_utils_log_error(j); d = -3 } } else { d = 0 } b = (d != 0 || (this.i_state_curr == this.i_state_term)); a = true; break } } if (b) { this.i_state_curr = this.i_state_term; if (this.fn_onterm) { this.fn_onterm(this.o_usr_data) } } this.b_locked = false; return d }; function tsk_fsm_entry(f, d, c, b, a, e) { this.i_state_from = f; this.i_action = d; this.fn_condition = c; this.i_state_to = b; this.fn_execute = a; this.s_description = e } tsk_fsm_entry.prototype.Create = function(f, d, c, b, a, e) { return new tsk_fsm_entry(f, d, c, b, a, e) }; tsk_fsm_entry.prototype.CreateAlways = function(e, c, b, a, d) { return new tsk_fsm_entry(e, c, null, b, a, d) }; tsk_fsm_entry.prototype.CreateNothing = function(d, b, a, c) { return new tsk_fsm_entry(d, b, a, d, null, c) }; tsk_fsm_entry.prototype.CreateAlwaysNothing = function(b, a) { return new tsk_fsm_entry(b, tsk_fsm.prototype.__i_action_any, null, b, null, a) }; function tsk_fsm_entry_compare(b, a) { if (b && a) { if (b.i_state_from == tsk_fsm.prototype.__i_state_any) { return +20 } else { if (a.i_state_from == tsk_fsm.prototype.__i_state_any) { return -20 } } if (b.i_action == tsk_fsm.prototype.__i_action_any) { return +10 } else { if (a.i_action == tsk_fsm.prototype.__i_action_any) { return -10 } } return b.fn_condition ? -1 : (a.fn_condition ? 1 : 0) } return 0 } var MD5 = (function() { var p = 0; var a = ""; var m = 8; var k = function(s, v) { var u = (s & 65535) + (v & 65535); var t = (s >> 16) + (v >> 16) + (u >> 16); return (t << 16) | (u & 65535) }; var o = function(s, t) { return (s << t) | (s >>> (32 - t)) }; var b = function(v) { var u = []; var s = (1 << m) - 1; for (var t = 0; t < v.length * m; t += m) { u[t >> 5] |= (v.charCodeAt(t / m) & s) << (t % 32) } return u }; var g = function(u) { var v = ""; var s = (1 << m) - 1; for (var t = 0; t < u.length * 32; t += m) { v += String.fromCharCode((u[t >> 5] >>> (t % 32)) & s) } return v }; var r = function(u) { var t = p ? "0123456789ABCDEF" : "0123456789abcdef"; var v = ""; for (var s = 0; s < u.length * 4; s++) { v += t.charAt((u[s >> 2] >> ((s % 4) * 8 + 4)) & 15) + t.charAt((u[s >> 2] >> ((s % 4) * 8)) & 15) } return v }; var q = function(v) { var u = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; var x = ""; var w, s; for (var t = 0; t < v.length * 4; t += 3) { w = (((v[t >> 2] >> 8 * (t % 4)) & 255) << 16) | (((v[t + 1 >> 2] >> 8 * ((t + 1) % 4)) & 255) << 8) | ((v[t + 2 >> 2] >> 8 * ((t + 2) % 4)) & 255); for (s = 0; s < 4; s++) { if (t * 8 + s * 6 > v.length * 32) { x += a } else { x += u.charAt((w >> 6 * (3 - s)) & 63) } } } return x }; var d = function(A, w, v, u, z, y) { return k(o(k(k(w, A), k(u, y)), z), v) }; var l = function(w, v, B, A, u, z, y) { return d((v & B) | ((~v) & A), w, v, u, z, y) }; var c = function(w, v, B, A, u, z, y) { return d((v & A) | (B & (~A)), w, v, u, z, y) }; var n = function(w, v, B, A, u, z, y) { return d(v ^ B ^ A, w, v, u, z, y) }; var j = function(w, v, B, A, u, z, y) { return d(B ^ (v | (~A)), w, v, u, z, y) }; var f = function(D, y) { D[y >> 5] |= 128 << ((y) % 32); D[(((y + 64) >>> 9) << 4) + 14] = y; var C = 1732584193; var B = -271733879; var A = -1732584194; var z = 271733878; var w, v, u, s; for (var t = 0; t < D.length; t += 16) { w = C; v = B; u = A; s = z; C = l(C, B, A, z, D[t + 0], 7, -680876936); z = l(z, C, B, A, D[t + 1], 12, -389564586); A = l(A, z, C, B, D[t + 2], 17, 606105819); B = l(B, A, z, C, D[t + 3], 22, -1044525330); C = l(C, B, A, z, D[t + 4], 7, -176418897); z = l(z, C, B, A, D[t + 5], 12, 1200080426); A = l(A, z, C, B, D[t + 6], 17, -1473231341); B = l(B, A, z, C, D[t + 7], 22, -45705983); C = l(C, B, A, z, D[t + 8], 7, 1770035416); z = l(z, C, B, A, D[t + 9], 12, -1958414417); A = l(A, z, C, B, D[t + 10], 17, -42063); B = l(B, A, z, C, D[t + 11], 22, -1990404162); C = l(C, B, A, z, D[t + 12], 7, 1804603682); z = l(z, C, B, A, D[t + 13], 12, -40341101); A = l(A, z, C, B, D[t + 14], 17, -1502002290); B = l(B, A, z, C, D[t + 15], 22, 1236535329); C = c(C, B, A, z, D[t + 1], 5, -165796510); z = c(z, C, B, A, D[t + 6], 9, -1069501632); A = c(A, z, C, B, D[t + 11], 14, 643717713); B = c(B, A, z, C, D[t + 0], 20, -373897302); C = c(C, B, A, z, D[t + 5], 5, -701558691); z = c(z, C, B, A, D[t + 10], 9, 38016083); A = c(A, z, C, B, D[t + 15], 14, -660478335); B = c(B, A, z, C, D[t + 4], 20, -405537848); C = c(C, B, A, z, D[t + 9], 5, 568446438); z = c(z, C, B, A, D[t + 14], 9, -1019803690); A = c(A, z, C, B, D[t + 3], 14, -187363961); B = c(B, A, z, C, D[t + 8], 20, 1163531501); C = c(C, B, A, z, D[t + 13], 5, -1444681467); z = c(z, C, B, A, D[t + 2], 9, -51403784); A = c(A, z, C, B, D[t + 7], 14, 1735328473); B = c(B, A, z, C, D[t + 12], 20, -1926607734); C = n(C, B, A, z, D[t + 5], 4, -378558); z = n(z, C, B, A, D[t + 8], 11, -2022574463); A = n(A, z, C, B, D[t + 11], 16, 1839030562); B = n(B, A, z, C, D[t + 14], 23, -35309556); C = n(C, B, A, z, D[t + 1], 4, -1530992060); z = n(z, C, B, A, D[t + 4], 11, 1272893353); A = n(A, z, C, B, D[t + 7], 16, -155497632); B = n(B, A, z, C, D[t + 10], 23, -1094730640); C = n(C, B, A, z, D[t + 13], 4, 681279174); z = n(z, C, B, A, D[t + 0], 11, -358537222); A = n(A, z, C, B, D[t + 3], 16, -722521979); B = n(B, A, z, C, D[t + 6], 23, 76029189); C = n(C, B, A, z, D[t + 9], 4, -640364487); z = n(z, C, B, A, D[t + 12], 11, -421815835); A = n(A, z, C, B, D[t + 15], 16, 530742520); B = n(B, A, z, C, D[t + 2], 23, -995338651); C = j(C, B, A, z, D[t + 0], 6, -198630844); z = j(z, C, B, A, D[t + 7], 10, 1126891415); A = j(A, z, C, B, D[t + 14], 15, -1416354905); B = j(B, A, z, C, D[t + 5], 21, -57434055); C = j(C, B, A, z, D[t + 12], 6, 1700485571); z = j(z, C, B, A, D[t + 3], 10, -1894986606); A = j(A, z, C, B, D[t + 10], 15, -1051523); B = j(B, A, z, C, D[t + 1], 21, -2054922799); C = j(C, B, A, z, D[t + 8], 6, 1873313359); z = j(z, C, B, A, D[t + 15], 10, -30611744); A = j(A, z, C, B, D[t + 6], 15, -1560198380); B = j(B, A, z, C, D[t + 13], 21, 1309151649); C = j(C, B, A, z, D[t + 4], 6, -145523070); z = j(z, C, B, A, D[t + 11], 10, -1120210379); A = j(A, z, C, B, D[t + 2], 15, 718787259); B = j(B, A, z, C, D[t + 9], 21, -343485551); C = k(C, w); B = k(B, v); A = k(A, u); z = k(z, s) } return [C, B, A, z] }; var e = function(u, x) { var w = b(u); if (w.length > 16) { w = f(w, u.length * m) } var s = new Array(16), v = new Array(16); for (var t = 0; t < 16; t++) { s[t] = w[t] ^ 909522486; v[t] = w[t] ^ 1549556828 } var y = f(s.concat(b(x)), 512 + x.length * m); return f(v.concat(y), 512 + 128) }; var h = { hexdigest: function(t) { return r(f(b(t), t.length * m)) }, b64digest: function(t) { return q(f(b(t), t.length * m)) }, hash: function(t) { return g(f(b(t), t.length * m)) }, hmac_hexdigest: function(s, t) { return r(e(s, t)) }, hmac_b64digest: function(s, t) { return q(e(s, t)) }, hmac_hash: function(s, t) { return g(e(s, t)) }, test: function() { return MD5.hexdigest("abc") === "900150983cd24fb0d6963f7d28e17f72" } }; return h })(); function tsk_param_create(c, b) { var a = new Object(); a.s_name = c; a.s_value = b; a.b_tag = false; return a } function tsk_param_create_null() { return tsk_param_create(null, null) } function tsk_param_parse(d) { if (!tsk_string_is_null_or_empty(d)) { var a = 0; var b = d.length; var f = tsk_string_index_of(d, b, "="); var e = null; var c = null; if (f >= 0 && f < b) { e = d.substring(a, a + (f - a)); c = d.substring(f + 1, f + (b - f)) } else { e = d } return tsk_param_create(e, c) } return null } function tsk_param_get_index_by_name(b, d) { if (b && !tsk_string_is_null_or_empty(d)) { var c = d.toLowerCase(); for (var a = 0; a < b.length; ++a) { if (b[a].s_name.toLowerCase() == c) { return a } } } return -1 } function tsk_param_get_by_name(a, c) { var b = tsk_param_get_index_by_name(a, c); if (b != -1) { return a[b] } return null } function tsk_param_get_value_by_name(a, b) { var c = tsk_param_get_by_name(a, b); if (c) { return c.s_value } return null } function tsk_params_have_param(a, b) { return tsk_param_get_by_name(a, b) != null } function tsk_params_add(a, d, b) { if (a && !tsk_string_is_null_or_empty(d)) { var c = tsk_param_get_index_by_name(a, d); if (c != -1) { a[c].s_value = b } else { a.push(tsk_param_create(d, b)) } } } function tsk_params_add_param(a, b) { if (a && b) { tsk_params_add(a, b.s_name, b.s_value) } } function tsk_params_remove_by_name(a, c) { if (a && !tsk_string_is_null_or_empty(c)) { var b = tsk_param_get_index_by_name(a, c); if (b != -1) { a.splice(b, 1) } } } function tsk_param_tostring(a) { if (a && a.s_name) { return !tsk_string_is_null_or_empty(a.s_value) ? (a.s_name + "=" + a.s_value) : a.s_name } return "" } function tsk_params_tostring(c, d) { var a = ""; if (c) { for (var b = 0; b < c.length; ++b) { if (!tsk_string_is_null_or_empty(a)) { a += d } a += tsk_param_tostring(c[b]) } } return a } function tsk_ragel_state_create() { var a = new Object(); tsk_ragel_state_init(a, null, 0); return a } function tsk_ragel_state_init(a, b, c) { a.i_cs = 0; a.i_p = 0; a.i_pe = c; a.o_data = b; a.s_data = null; a.i_eof = 0; a.i_tag_start = 0; a.i_tag_end = c } function tsk_ragel_state_init_ai(b, a) { return tsk_ragel_state_init_str(b, tsk_buff_ab2str(a)) } function tsk_ragel_state_init_str(a, b) { tsk_ragel_state_init(a, tsk_buff_str2ib(b), b.length); a.s_data = b } function tsk_ragel_parser_get_string(d, e, b) { var c = (e - b); var a = null; if (c > 0) { a = d.substring(b, (b + c)) } return a } function tsk_ragel_parser_get_int(d, e, a) { var c = 0; var b = tsk_ragel_parser_get_string(d, e, a); if (!tsk_string_is_null_or_empty(b)) { c = parseInt(b) } return c } function tsk_ragel_parser_get_param(c, d, a) { if (!tsk_string_is_null_or_empty(c)) { var b = (d - a); return tsk_param_parse(c.substring(a, a + b)) } return null } function tsk_ragel_add_param(c, d, a, b) { var e = tsk_ragel_parser_get_param(c, d, a); if (e) { b.push(e) } } function tsk_ragel_parser_add_string(d, e, a, c) { var b = tsk_ragel_parser_get_string(d, e, a); if (!tsk_string_is_null_or_empty(b)) { c.push(b) } return c } function tsk_ragel_scanner_get_string(e, c, d) { var b = (d - c); var a = null; if (b > 0) { a = e.substring(c, (c + b)) } return a } function tsk_ragel_scanner_get_int(d, b, c) { var a = tsk_ragel_scanner_get_string(d, b, c); if (a) { return parseInt(a) } return 0 } function tsk_tagel_scanner_add_param(d, a, c) { if (c && !tsk_string_is_null_or_empty(d)) { var b = (te - ts); var e = tsk_param_parse(d.substring(i_ts, i_ts + b)); c.push(e) } } function tsk_string_is_null_or_empty(a) { return !a || a == "" } function tsk_string_is_string(a) { return (a instanceof String || typeof a == "string") } function tsk_string_index_of(d, b, a) { var c = -1; if (d && a) { c = d.indexOf(a) } return c < b ? c : -1 } function tsk_string_contains(c, b, a) { return tsk_string_index_of(c, b, a) >= 0 } function tsk_string_unquote(e, d, b) { var a = e; if (a) { var c = a.length; if (c >= 2 && a[0] == d && a[c - 1] == b) { a = e.substring(1, c - 1) } } return a } function tsk_string_unquote_2(a) { return tsk_string_unquote(a, '"', '"') } function tsk_strdup(a) { if (a) { return new String(a).toString() } return a } function tsk_string_format(c) { for (var a = 1; a < arguments.length; a++) { var b = new RegExp("\\{" + (a - 1) + "\\}", "gi"); c = c.replace(b, arguments[a]) } return c } function tsk_string_equals(b, a) { return (b == a) } function tsk_string_iequals(b, a) { if (b && a) { return b.toLowerCase() == a.toLowerCase() } return (b == a) } function tsk_string_random_from_dict(b, d) { var a = ""; for (var c = 0; c < b; c++) { a += d[Math.floor(Math.random() * d.length)] } return a } function tsk_string_random(a) { var b = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz"; return tsk_string_random_from_dict(a, b) } function tsk_string_random_uuid() { var a = "0123456789abcdef"; return tsk_string_format("{0}-{1}-{2}-{3}-{4}", tsk_string_random_from_dict(8, a), tsk_string_random_from_dict(4, a), tsk_string_random_from_dict(4, a), tsk_string_random_from_dict(4, a), tsk_string_random_from_dict(12, a)) } function tsk_string_to_int(b, a) { try { return parseInt(b) } catch (c) { return a } } function tsk_string_to_object(s_str) { if (!tsk_string_is_null_or_empty(s_str)) { try { eval("var obj = " + s_str + ";"); return obj } catch (e) {} } } function tsk_string_parse_url(a) { if (!a) { tsk_utils_log_error("Invalid argument"); return null } var f = a.indexOf("://"); var d = a.lastIndexOf(":"); if (f == -1 || d == -1) { tsk_utils_log_error(a + " not valid as url"); return null } var c = new Array(); c.push(a.substring(0, f)); c.push(a.substring((f + 3), d)); try { var b = a.substring(f + 3).indexOf("/"); if (b == -1) { c.push(parseInt(a.substring(d + 1), 10)) } else { c.push(parseInt(a.substring(d + 1, b + f + 3), 10)); c.push(a.substring(b + f + 3 + 1)) } } catch (g) { tsk_utils_log_error(g); return null } return c } function tsk_utils_init_webrtc() { WebRtc4all_Init() } function tsk_utils_have_websocket() { try { return !!window.WebSocket } catch (a) { return false } } function tsk_utils_have_webrtc() { return (WebRtc4all_GetType() != WebRtcType_e.NONE) } function tsk_utils_have_webrtc4all() { return (tsk_utils_have_webrtc4npapi() || tsk_utils_have_webrtc4ie()) } function tsk_utils_have_webrtc4npapi() { return (WebRtc4all_GetType() == WebRtcType_e.NPAPI) } function tsk_utils_have_webrtc4ie() { return (WebRtc4all_GetType() == WebRtcType_e.IE) } function tsk_utils_have_webrtc4native() { return (WebRtc4all_GetType() == WebRtcType_e.NATIVE) } function tsk_utils_have_webrtc4ericsson() { return (WebRtc4all_GetType() == WebRtcType_e.ERICSSON) } function tsk_utils_webrtc4all_get_version() { return WebRtc4all_GetVersion() } function tsk_utils_have_stream() { try { return (tsk_utils_have_webrtc4all() || !!navigator.nativeGetUserMedia) } catch (a) {} return false } var __s_navigator_friendly_name = undefined; function tsk_utils_get_navigator_friendly_name() { if (!__s_navigator_friendly_name) { __s_navigator_friendly_name = "unknown"; if (navigator.userAgent || navigator.appName) { var c = [{ s_id: "chrome", s_name: "chrome" }, { s_id: "firefox", s_name: "firefox" }, { s_id: "safari", s_name: "safari" }, { s_id: "opera", s_name: "opera" }, { s_id: "microsoft internet explorer", s_name: "ie" }, { s_id: "netscape", s_name: "netscape" }]; var a = navigator.userAgent ? navigator.userAgent.toLowerCase() : "null"; var b = navigator.appName ? navigator.appName.toLowerCase() : "null"; for (var d = 0; d < c.length; ++d) { if (a.indexOf(c[d].s_id) != -1 || b.indexOf(c[d].s_id) != -1) { __s_navigator_friendly_name = c[d].s_name; break } } } } return __s_navigator_friendly_name } var __s_system_friendly_name = undefined; function tsk_utils_get_system_friendly_name() { if (!__s_system_friendly_name) { __s_system_friendly_name = "unknown"; if (navigator.appVersion) { var b = [{ s_id: "mac", s_name: "mac" }, { s_id: "powerpc", s_name: "powerpc" }, { s_id: "win", s_name: "windows" }, { s_id: "sunos", s_name: "sunos" }, { s_id: "linux", s_name: "linux" }]; var a = navigator.appVersion.toLowerCase(); for (var c = 0; c < b.length; ++c) { if (a.indexOf(b[c].s_id) != -1) { __s_system_friendly_name = b[c].s_name; break } } } } return __s_system_friendly_name } var __i_debug_level = 4; function tsk_utils_log_set_level(a) { __i_debug_level = a } function tsk_utils_log_info(a) { if (window.console && (__i_debug_level >= 4)) { window.console.info(a) } } function tsk_utils_log_warn(a) { if (window.console && (__i_debug_level >= 3)) { window.console.warn(a) } } function tsk_utils_log_error(a) { if (window.console && (__i_debug_level >= 2)) { window.console.error(a) } } function tsk_utils_log_fatal(a) { if (__i_debug_level >= 1) { tsk_utils_log_error(a) } } tsk_utils_log_info("SIPML5 API version = 1.5.222"); var tmedia_type_e = { NONE: { i_id: 0, s_name: null }, GHOST: { i_id: (1 << 0), s_name: null }, AUDIO: { i_id: (1 << 1), s_name: "audio" }, VIDEO: { i_id: (1 << 2), s_name: "video" }, CHAT: { i_id: (1 << 3), s_name: "message" }, FILE: { i_id: (1 << 4), s_name: "message" }, T38: { i_id: (1 << 5), s_name: "t38" }, SCREEN_SHARE: { i_id: (1 << 2) | (1 << 6), s_name: "sccreen share" }, BFCP: { i_id: (1 << 7), s_name: "bfcp" }, BFCPAUDIO: { i_id: (1 << 8) | (1 << 7), s_name: "bfcpaudio" }, BFCPVIDEO: { i_id: (1 << 9) | (1 << 7), s_name: "bfcpvideo" }, MSRP: { i_id: (1 << 3) | (1 << 4), s_name: "message" }, AUDIO_VIDEO: { i_id: (1 << 1) | (1 << 2), s_name: "audio/video" }, AUDIO_BFCPVIDEO: { i_id: (1 << 1) | (1 << 9) | (1 << 7), s_name: "audio/bfcpvideo" }, VIDEO_BFCPVIDEO: { i_id: (1 << 2) | (1 << 9) | (1 << 7), s_name: "video/bfcpvideo" }, AUDIO_VIDEO_BFCPVIDEO: { i_id: (1 << 1) | (1 << 2) | (1 << 9) | (1 << 7), s_name: "audio/video/bfcpvideo" }, ALL: { i_id: 255, s_name: "all" } }; function tmedia_type_from_id(b) { for (var a in tmedia_type_e) { if (tmedia_type_e[a].i_id == b) { return tmedia_type_e[a] } } return tmedia_type_e.NONE } if (!window.__b_release_mode) { tmedia_api_add_js_scripts("head", "src/tinyMEDIA/src/tmedia_webrtc4all.js", "src/tinyMEDIA/src/tmedia_defaults.js", "src/tinyMEDIA/src/tmedia_session.js") } w4aPeerConnection.prototype.s_configuration = null; w4aPeerConnection.prototype.f_IceCallback = null; w4aPeerConnection.prototype.f_Rfc5168Callback; w4aPeerConnection.prototype.o_peer = null; w4aPeerConnection.prototype.localDescription = null; w4aPeerConnection.prototype.remoteDescription = null; w4aSessionDescription.prototype.o_sdp = null; w4aIceCandidate.prototype.media = null; w4aIceCandidate.prototype.label = null; var __o_roap_stream = null; var __o_jsep_stream_audio = null; var __o_jsep_stream_audiovideo = null; var WebRtcType_e = { NONE: -1, NATIVE: 0, IE: 1, NPAPI: 2, W4A: 3, ERICSSON: 4 }; var __webrtc_type = WebRtcType_e.NONE; var __b_webrtc4all_initialized = false; function WebRtc4all_Init() { if (!__b_webrtc4all_initialized) { try { if (__webrtc_type == WebRtcType_e.NONE) { window.nativeRTCPeerConnection = (window.webkitPeerConnection00 || window.webkitRTCPeerConnection || window.mozRTCPeerConnection); window.nativeRTCSessionDescription = (window.mozRTCSessionDescription || window.RTCSessionDescription); window.nativeRTCIceCandidate = (window.mozRTCIceCandidate || window.RTCIceCandidate); window.nativeURL = (window.webkitURL || window.URL); navigator.nativeGetUserMedia = (navigator.webkitGetUserMedia || navigator.mozGetUserMedia); if ((navigator.nativeGetUserMedia && window.nativeRTCPeerConnection)) { __webrtc_type = WebRtcType_e.NATIVE } else { if (navigator.nativeGetUserMedia && window.webkitPeerConnection) { __webrtc_type = WebRtcType_e.ERICSSON } } } } catch (a) {} if (__webrtc_type == WebRtcType_e.NONE || __webrtc_type == WebRtcType_e.W4A) { var b = document.createElement("div"); b.id = "__webrtc4ie.pluginInstance.id"; try { new ActiveXObject("webrtc4ie.PluginInstance"); b.innerHTML = ' '; __webrtc_type = WebRtcType_e.IE } catch (a) { try { b.innerHTML = ' '; __webrtc_type = WebRtcType_e.NPAPI } catch (a) {} } b.style = "visibility:visible; width:0px; height:0px"; document.body.appendChild(b) } __b_webrtc4all_initialized = true; if (navigator.nativeGetUserMedia && WebRtc4all_GetType() == WebRtcType_e.ERICSSON) { navigator.nativeGetUserMedia("audio, video", function(c) { tsk_utils_log_info("Got stream :)"); __o_roap_stream = c }, function(c) { tsk_utils_log_error(c) }) } } } function WebRtc4all_GetPlugin() { return document.getElementById("__webrtc_plugin") } function WebRtc4all_GetDisplayLocal() { return document.getElementById("__o_display_local") } function WebRtc4all_GetDisplayLocalScreencast() { return document.getElementById("__o_display_local_screencast") } function WebRtc4all_GetDisplayRemote() { return document.getElementById("__o_display_remote") } function WebRtc4all_GetVersion() { try { return WebRtc4all_GetPlugin().version } catch (a) {} return "0.0.0.0" } function WebRtc4all_SetType(a) { if (__webrtc_type != WebRtcType_e.NONE) { tsk_utils_log_error("Trying not set default webrtc type after init() is not allowed"); return false } switch (a) { case "w4a": __webrtc_type = WebRtcType_e.W4A; break; case "ericsson": __webrtc_type = WebRtcType_e.ERICSSON; break; case "native": __webrtc_type = WebRtcType_e.NATIVE; break; default: tsk_utils_log_error("[" + a + "] not valid as default webrtc type"); return false } return true } function WebRtc4all_GetType() { return __webrtc_type } var __looper = undefined; function WebRtc4all_GetLooper() { if (__looper == undefined && tsk_utils_have_webrtc4ie()) { try { __looper = WebRtc4all_GetPlugin().windowHandle; if (!__looper) { tsk_utils_log_error("Failed to create looper. Your app may crash on IE11") } } catch (a) { tsk_utils_log_error(a); __looper = null } } return __looper } function WebRtc4all_SetDisplays(a, b, c) { if (__webrtc_type == WebRtcType_e.IE) { if (a) { a.innerHTML = ' '; __o_display_local.style.visibility = "hidden" } if (c) { c.innerHTML = ' '; __o_display_local_screencast.style.visibility = "hidden" } if (b) { b.innerHTML = ' '; __o_display_remote.style.visibility = "hidden" } } else { if (__webrtc_type == WebRtcType_e.NPAPI) { if (a) { a.innerHTML = ' '; __o_display_local.style.visibility = "hidden" } if (c) { c.innerHTML = ' '; __o_display_local_screencast.style.visibility = "hidden" } if (b) { b.innerHTML = " "; __o_display_remote.style.visibility = "hidden" } } } } function w4aSessionDescription(a) { if (!__b_webrtc4all_initialized) { WebRtc4all_Init() } this.o_sdp = WebRtc4all_GetPlugin().createSessionDescription(); this.o_sdp.Init(a ? (a + "") : null) } w4aSessionDescription.prototype.toSdp = function() { return this.o_sdp.toSdp() }; w4aSessionDescription.prototype.toString = w4aSessionDescription.prototype.toSdp; w4aSessionDescription.prototype.addCandidate = function(a) { if (a && a.media && a.label) { this.o_sdp.addCandidate(a.media, a.label) } }; function w4aIceCandidate(b, a) { this.media = b; this.label = a } w4aIceCandidate.prototype.toSdp = function() { return this.label }; function w4aPeerConnection(s_configuration, f_IceCallback) { if (!__b_webrtc4all_initialized) { WebRtc4all_Init() } var This = this; var b_isInternetExplorer = (__webrtc_type == WebRtcType_e.IE); this.s_configuration = s_configuration; this.f_IceCallback = f_IceCallback; this.o_peer = WebRtc4all_GetPlugin().createPeerConnection(); this.o_peer.Init(s_configuration); This.attachDisplays(); if (b_isInternetExplorer) { eval("function This.o_peer::IceCallback(media, label, bMoreToFollow) { return This.onIceCallback (media, label, bMoreToFollow); }"); eval("function This.o_peer::Rfc5168Callback(command) { return This.onRfc5168Callback(command); }"); eval("function This.o_peer::BfcpCallback(description) { return This.onBfcpCallback(description); }") } else { this.o_peer.opaque = This; this.o_peer.setCallbackFuncName("w4aPeerConnection_NPAPI_OnEvent"); this.o_peer.setRfc5168CallbackFuncName("w4aPeerConnection_NPAPI_OnRfc5168Event"); this.o_peer.setBfcpCallbackFuncName("w4aPeerConnection_NPAPI_OnBfcpEvent") } } w4aPeerConnection.SDP_OFFER = 256; w4aPeerConnection.SDP_PRANSWER = 512; w4aPeerConnection.SDP_ANSWER = 768; w4aPeerConnection.NEW = 0; w4aPeerConnection.OPENING = 1; w4aPeerConnection.ACTIVE = 2; w4aPeerConnection.CLOSED = 3; w4aPeerConnection.ICE_GATHERING = 256; w4aPeerConnection.ICE_WAITING = 512; w4aPeerConnection.ICE_CHECKING = 768; w4aPeerConnection.ICE_CONNECTED = 1024; w4aPeerConnection.ICE_COMPLETED = 1280; w4aPeerConnection.ICE_FAILED = 1536; w4aPeerConnection.ICE_CLOSED = 1792; w4aPeerConnection.prototype.createOffer = function(c) { var a; try { a = this.o_peer.createOfferEx(c.has_audio, c.has_video, c.has_bfcpvideo) } catch (b) { a = this.o_peer.createOffer(c.has_audio, c.has_video) } return a ? ((__webrtc_type == WebRtcType_e.IE) ? new w4aSessionDescription(a) : new w4aSessionDescription(a.toSdp())) : null }; w4aPeerConnection.prototype.createAnswer = function(b, d) { var a; try { a = this.o_peer.createAnswerEx(d.has_audio, d.has_video, d.has_bfcpvideo) } catch (c) { a = this.o_peer.createAnswer(d.has_audio, d.has_video) } return a ? ((__webrtc_type == WebRtcType_e.IE) ? new w4aSessionDescription(a) : new w4aSessionDescription(a.toSdp())) : null }; w4aPeerConnection.prototype.setLocalDescription = function(a, b) { this.o_peer.setLocalDescription(a, (__webrtc_type == WebRtcType_e.IE) ? b.toSdp() : b.o_sdp); this.localDescription = new w4aSessionDescription(this.o_peer.localDescription) }; w4aPeerConnection.prototype.setRemoteDescription = function(a, b) { this.o_peer.setRemoteDescription(a, (__webrtc_type == WebRtcType_e.IE) ? b.toSdp() : b.o_sdp); this.remoteDescription = new w4aSessionDescription(this.o_peer.remoteDescription) }; w4aPeerConnection.prototype.startIce = function(a) { this.o_peer.startIce(0, WebRtc4all_GetLooper()) }; w4aPeerConnection.prototype.startMedia = function(a) { if (this.o_peer) { try { this.o_peer.startMedia() } catch (b) {} } }; w4aPeerConnection.prototype.processIceMessage = function(a) { tsk_utils_log_error("Not implemented") }; w4aPeerConnection.prototype.addStream = function(a, b) {}; w4aPeerConnection.prototype.removeStream = function(a) {}; w4aPeerConnection.prototype.processContent = function(d, a, b, f) { if (this.o_peer) { try { this.o_peer.processContent(d, a, b, f) } catch (c) {} } }; w4aPeerConnection.prototype.setScreencastSrcWindowId = function(a) { if (this.o_peer) { this.o_peer.srcScreencast = a } }; w4aPeerConnection.prototype.sendDTMF = function(c) { if (this.o_peer) { var a = -1, b = c.charCodeAt(0); if (b >= "0".charCodeAt(0) && b <= "9".charCodeAt(0)) { a = b - "0".charCodeAt(0) } else { if (b == "*".charCodeAt(0)) { a = 10 } else { if (b == "#".charCodeAt(0)) { a = 11 } else { if (b >= "A".charCodeAt(0) && b <= "D".charCodeAt(0)) { a = b - "A".charCodeAt(0) } } } } if (a != -1) { this.o_peer.sendDTMF(a) } else { tsk_utils_log_error("Invalid DTMF code:" + c) } } }; w4aPeerConnection.prototype.attachDisplays = function() { if (this.o_peer) { try { this.o_peer.localVideo = WebRtc4all_GetDisplayLocal().windowHandle } catch (a) {} try { this.o_peer.localScreencast = WebRtc4all_GetDisplayLocalScreencast().windowHandle } catch (a) {} try { this.o_peer.remoteVideo = WebRtc4all_GetDisplayRemote().windowHandle } catch (a) {} } }; w4aPeerConnection.prototype.close = function() { if (this.o_peer) { this.o_peer.close() } }; w4aPeerConnection.prototype.mute = function(b, a) { if (this.o_peer) { if (b === "audio") { this.o_peer.muteAudio = !!a } else { if (b === "video") { this.o_peer.muteVideo = !!a } } } }; w4aPeerConnection.prototype.onIceCallback = function(b, a, c) { tsk_utils_log_info("w4aPeerConnection::onIceCallback(" + b + "," + a + "," + c + ")"); this.iceState = this.o_peer.iceState; if (this.f_IceCallback) { this.f_IceCallback(new w4aIceCandidate(b, a), c) } }; function w4aPeerConnection_NPAPI_OnEvent(c, a, b, d) { c.onIceCallback(a, b, d) } w4aPeerConnection.prototype.onRfc5168Callback = function(a) { tsk_utils_log_info("w4aPeerConnection::onRfc5168Callback(" + a + ")"); if (this.o_mgr && this.o_mgr.callback) { if (a === "picture_fast_update") { this.o_mgr.callback(tmedia_session_events_e.RFC5168_REQUEST_IDR, this.o_mgr.e_type) } } else { tsk_utils_log_error("No manager associated to this peerconnection") } }; function w4aPeerConnection_NPAPI_OnRfc5168Event(a, b) { a.onRfc5168Callback(b) } w4aPeerConnection.prototype.onBfcpCallback = function(a) { tsk_utils_log_info("w4aPeerConnection::onBfcpCallback(" + a + ")"); if (this.o_mgr && this.o_mgr.callback) { this.o_mgr.callback(tmedia_session_events_e.BFCP_INFO, this.o_mgr.e_type, a) } else { tsk_utils_log_error("No manager associated to this peerconnection") } }; function w4aPeerConnection_NPAPI_OnBfcpEvent(a, b) { a.onBfcpCallback(b) } var __tmedia_defaults_e_media_type = tmedia_type_e.AUDIO_VIDEO; function tmedia_defaults_get_media_type() { return __tmedia_defaults_e_media_type } var __o_peerconnection_class = undefined; var __o_sessiondescription_class = undefined; var __o_iceCandidate_class = undefined; var tmedia_session_events_e = { GET_LO_SUCCESS: 0, GET_LO_FAILED: 1, SET_RO_SUCCESS: 10, SET_RO_FAILED: 11, SET_ACK_SUCCESS: 20, SET_ACK_FAILED: 21, STREAM_LOCAL_REQUESTED: 30, STREAM_LOCAL_ACCEPTED: 31, STREAM_LOCAL_REFUSED: 32, STREAM_LOCAL_ADDED: 33, STREAM_LOCAL_REMOVED: 34, STREAM_REMOTE_ADDED: 35, STREAM_REMOTE_REMOVED: 36, RFC5168_REQUEST_IDR: 40, BFCP_INFO: 50 }; tmedia_session_mgr.prototype.__ao_supported_media = [tmedia_type_e.AUDIO, tmedia_type_e.VIDEO]; function tmedia_session_mgr(d, e, c, f, b, a) { this.s_addr = e; this.s_public_addr = null; this.b_ipv6 = c; this.fn_callback = b; this.o_usr_data = a; this.sdp = {}; this.sdp.i_lo_ver = -1; this.sdp.o_lo = null; this.sdp.i_ro_ver = -1; this.sdp.o_ro = null; this.o_stream_local = null; this.o_stream_remote = null; this.b_started = false; this.b_ro_changed = false; this.b_lo_changed = false; this.b_state_changed = false; this.b_media_type_changed = false; this.e_type = d; this.ao_sessions = new Array(); this.ao_params = new Array(); if (__o_peerconnection_class == undefined) { if (tsk_utils_have_webrtc4all()) { __o_peerconnection_class = w4aPeerConnection; __o_sessiondescription_class = w4aSessionDescription; __o_iceCandidate_class = w4aIceCandidate } else { if (tsk_utils_have_webrtc()) { if (WebRtc4all_GetType() == WebRtcType_e.NATIVE) { if (window.webkitPeerConnection00 && window.SessionDescription && window.IceCandidate) { __o_peerconnection_class = window.webkitPeerConnection00; __o_sessiondescription_class = window.SessionDescription; __o_iceCandidate_class = window.IceCandidate } else { if (window.nativeRTCPeerConnection && window.nativeRTCSessionDescription && window.nativeRTCIceCandidate) { __o_peerconnection_class = window.nativeRTCPeerConnection; __o_sessiondescription_class = window.nativeRTCSessionDescription; __o_iceCandidate_class = window.nativeRTCIceCandidate } } } else { if (WebRtc4all_GetType() == WebRtcType_e.ERICSSON) { if (window.webkitPeerConnection) { __o_peerconnection_class = window.webkitPeerConnection } } } } } tsk_utils_log_info("PeerConnectionClass = " + (__o_peerconnection_class || "unknown") + " SessionDescriptionClass = " + (__o_sessiondescription_class || "unknown") + " IceCandidateClass = " + (__o_iceCandidate_class || "unknown")) } if (f) { this.load_sessions() } } tmedia_session_mgr.prototype.is_roap = function() { return (WebRtc4all_GetType() == WebRtcType_e.ERICSSON) }; tmedia_session_mgr.prototype.is_jsep = function() { return !this.is_roap() }; tmedia_session_mgr.prototype.get_stream_local = function() { return this.o_stream_local }; tmedia_session_mgr.prototype.get_stream_remote = function() { return this.o_stream_remote }; tmedia_session_mgr.prototype.set_stream_local = function(a) { this.o_stream_local = a; this.callback(a ? tmedia_session_events_e.STREAM_LOCAL_ADDED : tmedia_session_events_e.STREAM_LOCAL_REMOVED, tmedia_type_e.VIDEO) }; tmedia_session_mgr.prototype.set_stream_remote = function(a) { this.o_stream_remote = a; this.callback(a ? tmedia_session_events_e.STREAM_REMOTE_ADDED : tmedia_session_events_e.STREAM_REMOTE_REMOVED, tmedia_type_e.VIDEO) }; tmedia_session_mgr.prototype.set_fn_callback = function(b, a) { this.fn_callback = b; this.o_usr_data = a }; tmedia_session_mgr.prototype.callback = function(c, b, a) { if (this.fn_callback) { if (c == tmedia_session_events_e.GET_LO_SUCCESS) { this.b_lo_changed = true; if (this.ao_sessions.length > 0) { this.sdp.o_lo = this.ao_sessions[0].o_sdp_lo } } this.fn_callback(this.o_usr_data, c, b, a) } }; tmedia_session_mgr.prototype.set_media_type = function(a) { if (this.e_type != a) { this.b_media_type_changed = true; this.e_type = a; for (var b = 0; b < this.ao_sessions.length; ++b) { this.ao_sessions[b].set_media_type(a) } } return 0 }; tmedia_session_mgr.prototype.get_media_type = function() { return this.e_type }; tmedia_session_mgr.prototype.has_media = function(a) { for (var b = 0; b < this.ao_sessions.length; ++b) { if (this.ao_sessions[b].e_type == a) { return true } } return false }; tmedia_session_mgr.prototype.has_ro_changed = function() { return this.b_ro_changed }; tmedia_session_mgr.prototype.has_state_changed = function() { return this.b_state_changed }; tmedia_session_mgr.prototype.has_active_session = function() { for (var a = 0; a < this.ao_sessions.length; ++a) { if (this.ao_sessions[a].o_sdp_lo) { return true } } return false }; tmedia_session_mgr.prototype.is_started = function() { return this.b_started }; tmedia_session_mgr.prototype.has_lo = function() { return this.sdp.o_lo != null }; tmedia_session_mgr.prototype.has_ro = function() { return this.sdp.o_ro != null }; tmedia_session_mgr.prototype.remove_media = function(a) { for (var b = 0; b < this.ao_sessions.length; ++b) { if (this.ao_sessions[b].e_type == a) { this.ao_sessions[b].stop(); this.ao_sessions.splice(b, 1); break } } }; tmedia_session_mgr.prototype.send_dtmf = function(b) { for (var a = 0; a < this.ao_sessions.length; ++a) { if ((this.ao_sessions[a].e_type.i_id & tmedia_type_e.AUDIO.i_id) == tmedia_type_e.AUDIO.i_id) { return this.ao_sessions[a].send_dtmf(b) } } return -1 }; tmedia_session_mgr.prototype.apply_params = function() { var c; for (var b = 0; b < this.ao_params.length; ++b) { if (!(c = this.ao_params[b])) { continue } switch (c.e_type) { case tmedia_param_type_e.CODEC: break; case tmedia_param_type_e.MANAGER: break; case tmedia_param_type_e.SESSION: for (var a = 0; a < this.ao_sessions.length; ++a) { if (this.ao_sessions[a].e_type.i_id & c.e_media_type.i_id) { this.ao_sessions[a].set(c) } } break } } this.ao_params.splice(0, this.ao_params.length) }; tmedia_session_mgr.prototype.load_sessions = function() { var c = null; if (this.ao_sessions.length == 0 || this.b_media_type_changed) { for (var b = 0; b < tmedia_session_mgr.prototype.__ao_supported_media.length; ++b) { var a = tmedia_session_mgr.prototype.__ao_supported_media[b]; if ((a.i_id & this.e_type.i_id) && !this.has_media(a)) { if ((c = tmedia_session.prototype.Create(a, this))) { this.ao_sessions.push(c) } } else { if (!(a.i_id & this.e_type.i_id) && this.has_media(a)) { this.remove_media(a) } } } this.set(tmedia_session_mgr.prototype.SetParamSession(this.e_type, "local-ip", this.s_addr), tmedia_session_mgr.prototype.SetParamSession(this.e_type, "local-ipver", this.b_ipv6 ? "ipv6" : "ipv4")); this.apply_params(self) } return 0 }; tmedia_session_mgr.prototype.__update_ro = function(e) { this.sdp.o_ro = e; var b = true; var d = 0; var a; while ((a = e.get_header_at(tsdp_header_type_e.M, d++))) { if (!a.is_held(false)) { b = false; break } } for (var c = 0; c < this.ao_sessions.length; ++c) { this.ao_sessions[c].b_ro_held = b } return 0 }; tmedia_session_mgr.prototype.get_lo = function() { if (this.ao_sessions.length == 0) { if (this.load_sessions() != 0) { tsk_utils_log_error("Failed to prepare the session manager"); return null } } if ((this.b_ro_changed || this.b_lo_changed || this.b_state_changed || this.b_mediaType_changed) && this.sdp.o_lo) { this.sdp.o_lo = null; if (this.b_mediaType_changed) { this.load_sessions() } this.b_lo_changed = false; this.b_ro_changed = false; this.b_state_changed = false; this.b_mediaType_changed = false } if (this.ao_sessions.length > 0) { this.sdp.o_lo = this.ao_sessions[0].get_lo() } return this.sdp.o_lo }; tmedia_session_mgr.prototype.set_ro = function(m, n) { if (!m) { tsk_utils_log_error("Invalid parameter"); return -1 } var k = 0; var h = false; var d = false; var c = false; var e = tmedia_type_e.NONE; var f = false; var b = (this.sdp.o_ro != null); var j; var a; if ((j = m.get_header(tsdp_header_type_e.O))) { if (this.sdp.i_ro_ver == j.i_sess_version) { tsk_utils_log_warn("Remote offer has not changed"); return 0 } this.sdp.i_ro_ver = j.i_sess_version } else { tsk_utils_log_error("o= line is missing"); return -2 } if ((a = m.get_header(tsdp_header_type_e.C)) && a.s_addr) { f = (tsk_string_iequals("IP4", a.s_addrtype) && tsk_string_iequals("127.0.0.1", a.s_addr)) || (tsk_string_iequals("IP6", a.s_addrtype) && tsk_string_iequals("::1", a.s_addr)) } if (this.sdp.o_lo) { e = m.get_media_type(); if (n) { var l = e.i_id; if (!(this.e_type.i_id & tmedia_type_e.BFCPVIDEO.i_id)) { l &= ~tmedia_type_e.BFCPVIDEO.i_id } if (!(this.e_type.i_id & tmedia_type_e.BFCPAUDIO.i_id)) { l &= ~tmedia_type_e.BFCPAUDIO.i_id } if (!(this.e_type.i_id & tmedia_type_e.BFCP.i_id)) { l &= ~tmedia_type_e.BFCP.i_id } e = tmedia_type_from_id(l) } if (e == tmedia_type_e.VIDEO && this.e_type == tmedia_type_e.SCREEN_SHARE) { e = this.e_type } if ((c = (e != this.e_type))) { this.set_media_type(e); tsk_utils_log_info("media type has changed") } } if (this.b_started && !(this.is_roap() || this.is_jsep()) && ((!d && !f) || c)) { if ((k = this.stop())) { tsk_utils_log_error("Failed to stop session manager"); return k } h = true } this.__update_ro(m); if ((k = this.load_sessions())) { tsk_utils_log_error("Failed to prepare the session manager"); return k } if (a && a.s_addr) { this.set(tmedia_session_mgr.prototype.SetParamSession(this.e_type, "remote-ip", a.s_addr)) } for (var g = 0; g < this.ao_sessions.length; ++g) { this.ao_sessions[g].set_ro(m, n) } this.b_ro_changed = b; (this.get_lo(self)); if (h) { if ((k = this.start())) { tsk_utils_log_warn("Failed to re-start session manager"); return k } } return 0 }; tmedia_session_mgr.prototype.processContent = function(d, b, c, e) { for (var a = 0; a < this.ao_sessions.length; ++a) { this.ao_sessions[a].processContent(d, b, c, e) } }; tmedia_session_mgr.prototype.start = function() { var b = 0; for (var a = 0; a < this.ao_sessions.length; ++a) { if ((b = this.ao_sessions[a].start())) { return b } } this.b_started = true; return 0 }; tmedia_session_mgr.prototype.stop = function() { var b = 0; for (var a = 0; a < this.ao_sessions.length; ++a) { if ((b = this.ao_sessions[a].stop())) { return b } } this.b_started = false; return 0 }; tmedia_session_mgr.prototype.acked = function() { var b = 0; for (var a = 0; a < this.ao_sessions.length; ++a) { if ((b = this.ao_sessions[a].acked())) { return b } } return 0 }; tmedia_session_mgr.prototype.is_held = function(d, a) { var c = false; var h; var b; var g; for (var e = 0; e < this.ao_sessions.length; ++e) { var f = this.ao_sessions[e]; if (!d || (f.e_type.i_id & d.i_id)) { if (a && f.o_sdp_lo) { g = f.o_sdp_lo } else { if (!a && f.o_sdp_ro) { g = f.o_sdp_ro } else { continue } } c = true; h = 0; while ((b = g.get_header_at(tsdp_header_type_e.M, h++))) { if (!b.is_held(a)) { return false } } } } return c ? true : false }; tmedia_session_mgr.prototype.hold = function(a) { var c; for (var b = 0; b < this.ao_sessions.length; ++b) { if (!a || (this.ao_sessions[b].e_type.i_id & a.i_id)) { this.b_state_changed = true; if (c = this.ao_sessions[b].hold()) { return c } this.ao_sessions[b].b_lo_held = true } } return 0 }; tmedia_session_mgr.prototype.resume = function(a) { var c; for (var b = 0; b < this.ao_sessions.length; ++b) { if (!a || (this.ao_sessions[b].e_type.i_id & a.i_id)) { this.b_state_changed = true; if (c = this.ao_sessions[b].resume()) { return c } this.ao_sessions[b].b_lo_held = false } } return 0 }; tmedia_session_mgr.prototype.set = function() { for (var a = 0; a < arguments.length; ++a) { if (arguments[a]) { this.ao_params.push(arguments[a]) } } if (this.ao_sessions.length > 0) { this.apply_params() } }; tmedia_session_mgr.prototype.SetParamSession = function(b, a, c) { return new tmedia_param(tmedia_param_type_e.SESSION, b, a, c) }; tmedia_session_mgr.prototype.SetParamCodec = function(b, a, c) { return new tmedia_param(tmedia_param_type_e.CODEC, b, a, c) }; tmedia_session_mgr.prototype.SetParam = function(b, a, c) { return new tmedia_param(tmedia_param_type_e.MANAGER, b, a, c) }; function tmedia_session(b, a) { this.e_type = b; this.b_ro_changed = false; this.b_initialized = false; this.b_prepared = false; this.b_lo_held = false; this.b_ro_held = false; this.o_sdp = null; this.o_mgr = a } tmedia_session.prototype.set = function(a) { return this.__set(a) }; tmedia_session.prototype.prepare = function() { return this.__prepare() }; tmedia_session.prototype.set_media_type = function(a) { return this.__set_media_type ? this.__set_media_type(a) : -1 }; tmedia_session.prototype.start = function() { return this.__start() }; tmedia_session.prototype.pause = function() { return this.__pause() }; tmedia_session.prototype.stop = function() { return this.__stop() }; tmedia_session.prototype.get_lo = function() { return this.__get_lo() }; tmedia_session.prototype.set_ro = function(b, a) { return this.__set_ro(b, a) }; tmedia_session.prototype.processContent = function(c, a, b, d) { return this.__processContent ? this.__processContent(c, a, b, d) : -1 }; tmedia_session.prototype.acked = function() { return this.__acked() }; tmedia_session.prototype.hold = function() { return this.__hold() }; tmedia_session.prototype.resume = function() { return this.__resume() }; tmedia_session.prototype.send_dtmf = function(a) { return this.__send_dtmf ? this.__send_dtmf(a) : -1 }; tmedia_session.prototype.Create = function(b, a) { switch (b) { case tmedia_type_e.AUDIO: case tmedia_type_e.VIDEO: case tmedia_type_e.SCREEN_SHARE: case tmedia_type_e.BFCPVIDEO: case tmedia_type_e.AUDIO_BFCPVIDEO: case tmedia_type_e.VIDEO_BFCPVIDEO: case tmedia_type_e.AUDIO_VIDEO_BFCPVIDEO: if (a.ao_sessions.length == 0) { if (a.is_jsep()) { return tmedia_session_jsep.prototype.CreateInstance(a) } else { return new tmedia_session_roap(a) } } return null; case tmedia_type_e.GHOST: return new tmedia_session_ghost(a); default: tsk_utils_log_error(b + " not supported as media type"); return null } }; if (!window.__b_release_mode) { tmedia_api_add_js_scripts("head", "src/tinyMEDIA/src/tmedia_session_jsep.js", "src/tinyMEDIA/src/tmedia_session_roap.js", "src/tinyMEDIA/src/tmedia_session_ghost.js") } tmedia_session_jsep.prototype = Object.create(tmedia_session.prototype); tmedia_session_jsep00.prototype = Object.create(tmedia_session_jsep.prototype); tmedia_session_jsep01.prototype = Object.create(tmedia_session_jsep.prototype); tmedia_session_jsep.prototype.o_pc = null; tmedia_session_jsep.prototype.b_cache_stream = false; tmedia_session_jsep.prototype.o_local_stream = null; tmedia_session_jsep.prototype.o_sdp_jsep_lo = null; tmedia_session_jsep.prototype.o_sdp_lo = null; tmedia_session_jsep.prototype.b_sdp_lo_pending = false; tmedia_session_jsep.prototype.o_sdp_json_ro = null; tmedia_session_jsep.prototype.o_sdp_ro = null; tmedia_session_jsep.prototype.b_sdp_ro_pending = false; tmedia_session_jsep.prototype.b_sdp_ro_offer = false; tmedia_session_jsep.prototype.s_answererSessionId = null; tmedia_session_jsep.prototype.s_offererSessionId = null; tmedia_session_jsep.prototype.ao_ice_servers = null; tmedia_session_jsep.prototype.o_bandwidth = { audio: undefined, video: undefined }; tmedia_session_jsep.prototype.o_video_size = { minWidth: undefined, minHeight: undefined, maxWidth: undefined, maxHeight: undefined }; tmedia_session_jsep.prototype.d_screencast_windowid = 0; tmedia_session_jsep.prototype.b_ro_changed = false; tmedia_session_jsep.prototype.b_lo_held = false; tmedia_session_jsep.prototype.b_ro_held = false; tmedia_session_jsep.prototype.CreateInstance = function(a) { if (__o_peerconnection_class === window.webkitPeerConnection00 || __o_peerconnection_class === window.w4aPeerConnection) { return new tmedia_session_jsep00(a) } return new tmedia_session_jsep01(a) }; function tmedia_session_jsep(a) { tmedia_session.call(this, a.e_type, a) } tmedia_session_jsep.prototype.__set = function(c) { if (!c) { return -1 } switch (c.s_key) { case "ice-servers": this.ao_ice_servers = c.o_value; return 0; case "cache-stream": this.b_cache_stream = !!c.o_value; return 0; case "bandwidth": this.o_bandwidth = c.o_value; return 0; case "video-size": this.o_video_size = c.o_value; return 0; case "screencast-windowid": this.d_screencast_windowid = parseFloat(c.o_value.toString()); if (this.o_pc && this.o_pc.setScreencastSrcWindowId) { this.o_pc.setScreencastSrcWindowId(this.d_screencast_windowid) } return 0; case "mute-audio": case "mute-video": if (this.o_pc && typeof c.o_value == "boolean") { if (this.o_pc.mute) { this.o_pc.mute((c.s_key === "mute-audio") ? "audio" : "video", c.o_value) } else { if (this.o_local_stream) { var a = (c.s_key === "mute-audio") ? this.o_local_stream.audioTracks : this.o_local_stream.videoTracks; if (a) { for (var b = 0; b < a.length; ++b) { a[b].enabled = !c.o_value } } } } } } return -2 }; tmedia_session_jsep.prototype.__prepare = function() { return 0 }; tmedia_session_jsep.prototype.__set_media_type = function(a) { if (a != this.e_type) { this.e_type = a; this.o_sdp_lo = null } return 0 }; tmedia_session_jsep.prototype.__processContent = function(c, a, b, d) { if (this.o_pc && this.o_pc.processContent) { this.o_pc.processContent(c, a, b, d); return 0 } return -1 }; tmedia_session_jsep.prototype.__send_dtmf = function(a) { if (this.o_pc && this.o_pc.sendDTMF) { this.o_pc.sendDTMF(a); return 0 } return -1 }; tmedia_session_jsep.prototype.__start = function() { if (this.o_local_stream && this.o_local_stream.start) { this.o_local_stream.start() } else { if (this.o_pc) { if (__o_peerconnection_class === window.w4aPeerConnection) { try { this.o_pc.startMedia() } catch (a) {} } } } return 0 }; tmedia_session_jsep.prototype.__pause = function() { if (this.o_local_stream && this.o_local_stream.pause) { this.o_local_stream.pause() } return 0 }; tmedia_session_jsep.prototype.__stop = function() { this.close(); this.o_sdp_lo = null; tsk_utils_log_info("PeerConnection::stop()"); return 0 }; tmedia_session_jsep.prototype.decorate_lo = function() { if (this.o_sdp_lo) { var d; if ((d = this.o_sdp_lo.get_header(tsdp_header_type_e.S))) { d.s_value = "Doubango Telecom - " + tsk_utils_get_navigator_friendly_name() } if ( /*!this.o_sdp_ro &&*/ !(this.e_type.i_id & tmedia_type_e.VIDEO.i_id)) { this.o_sdp_lo.remove_media("video") } var c = 0; var a; var e = (__o_peerconnection_class == w4aPeerConnection); var b = !!this.o_sdp_lo.get_header_a("fingerprint"); while ((a = this.o_sdp_lo.get_header_at(tsdp_header_type_e.M, c++))) { a.set_holdresume_att(this.b_lo_held, this.b_ro_held); if (!e) { if (a.find_a("crypto")) { a.s_proto = "RTP/SAVPF" } else { if (b || a.find_a("fingerprint")) { a.s_proto = "UDP/TLS/RTP/SAVPF" } } } if (this.o_bandwidth) { if (this.o_bandwidth.audio && a.s_media.toLowerCase() == "audio") { a.add_header(new tsdp_header_B("AS:" + this.o_bandwidth.audio)) } else { if (this.o_bandwidth.video && a.s_media.toLowerCase() == "video") { a.add_header(new tsdp_header_B("AS:" + this.o_bandwidth.video)) } } } } } return 0 }; tmedia_session_jsep.prototype.decorate_ro = function(j) { if (this.o_sdp_ro) { var e, a; var d = 0, c; var b = (__o_peerconnection_class == w4aPeerConnection); if (j) { this.o_sdp_ro.remove_header(tsdp_header_type_e.A) } var g = function(l, m) { var n = l.s_value.match(/^\d\s+(\w+):([\D|\d]+)/i); if (n && n.length == 3) { return n[m] } }; var k = function(l) { if (l && l.s_field == "acap") { l.s_field = g(l, 1); l.s_value = g(l, 2) } }; var f = function(o, r, q, p) { var m = 0; var l = function(w, v, u) { if (w) { var x = (w.ao_headers || w.ao_hdr_A); for (var t = 0; t < x.length; ++t) { if (x[t].e_type == tsdp_header_type_e.A && x[t].s_value) { var s = (x[t].s_field === v); if (!s && x[t].s_field == "acap") { s = (g(x[t], 1) == v) } if (s && m++ >= u) { return x[t] } } } } }; var n = l(o, q, p); if (!n) { return l(o.get_header_m_by_name(r), q, p) } return n }; var h = !!this.o_sdp_ro.get_header_a("fingerprint"); while ((e = this.o_sdp_ro.get_header_at(tsdp_header_type_e.M, d++))) { if (!b && e.s_proto.indexOf("SAVP") < 0) { if (e.find_a("crypto")) { e.s_proto = "RTP/SAVPF"; break } else { if (h || e.find_a("fingerprint")) { e.s_proto = "UDP/TLS/RTP/SAVPF"; break } } } if (!b && e.s_proto.indexOf("SAVP") < 0) { if ((a = f(this.o_sdp_ro, e.s_media, "fingerprint", 0))) { k(a); if ((a = f(this.o_sdp_ro, e.s_media, "setup", 0))) { k(a) } if ((a = f(this.o_sdp_ro, e.s_media, "connection", 0))) { k(a) } e.s_proto = "UDP/TLS/RTP/SAVP" } } if (!b && e.s_proto.indexOf("SAVP") < 0) { c = 0; while ((a = f(this.o_sdp_ro, e.s_media, "crypto", c++))) { k(a); e.s_proto = "RTP/SAVPF" } } if (!b && e.s_proto.indexOf("UDP/TLS/RTP/SAVP") != -1) { e.s_proto = "RTP/SAVPF" } } } return 0 }; tmedia_session_jsep.prototype.subscribe_stream_events = function() { if (this.o_pc) { this.o_pc.onstatechange = function(a) { tsk_utils_log_info("__on_state_change") }; this.o_pc.onopen = function(a) { tsk_utils_log_info("__on_open") }; this.o_pc.onaddstream = function(a) { tsk_utils_log_info("__on_add_stream"); var d = (tmedia_session_jsep01.mozThis || this.o_session); d.o_remote_stream = a.stream; if (d.o_mgr) { if (!d.o_remote_stream.videoTracks || !d.o_remote_stream.audioTracks) { var c = !!(d.e_type.i_id & tmedia_type_e.AUDIO.i_id); var b = !!(d.e_type.i_id & tmedia_type_e.VIDEO.i_id); d.o_remote_stream.audioTracks = d.o_remote_stream.getAudioTracks ? d.o_remote_stream.getAudioTracks() : { length: c ? 1 : 0 }; d.o_remote_stream.videoTracks = d.o_remote_stream.getVideoTracks ? d.o_remote_stream.getVideoTracks() : { length: b ? 1 : 0 } } d.o_mgr.set_stream_remote(a.stream) } }; this.o_pc.onremovestream = function(a) { tsk_utils_log_info("__on_remove_stream"); var b = (tmedia_session_jsep01.mozThis || this.o_session); b.o_remote_stream = null; if (b.o_mgr) { b.o_mgr.set_stream_remote(null) } } } }; tmedia_session_jsep.prototype.close = function() { if (this.o_mgr) { this.o_mgr.set_stream_remote(null); this.o_mgr.set_stream_local(null) } if (this.o_pc) { if (this.o_local_stream) { try { this.o_pc.removeStream(this.o_local_stream) } catch (a) {} if (!this.b_cache_stream || (this.e_type == tmedia_type_e.SCREEN_SHARE)) { this.o_local_stream.stop() } this.o_local_stream = null } this.o_pc.close(); this.o_pc = null; this.b_sdp_lo_pending = false; this.b_sdp_ro_pending = false } }; tmedia_session_jsep.prototype.__acked = function() { return 0 }; tmedia_session_jsep.prototype.__hold = function() { if (this.b_lo_held) { return } this.b_lo_held = true; this.o_sdp_ro = null; this.o_sdp_lo = null; if (this.o_pc && this.o_local_stream) { this.o_pc.removeStream(this.o_local_stream) } return 0 }; tmedia_session_jsep.prototype.__resume = function() { if (!this.b_lo_held) { return } this.b_lo_held = false; this.o_sdp_lo = null; this.o_sdp_ro = null; if (this.o_pc && this.o_local_stream) { this.o_pc.addStream(this.o_local_stream) } return 0 }; function tmedia_session_jsep00(a) { tmedia_session_jsep.call(this, a) } tmedia_session_jsep00.prototype.__get_lo = function() { if (!this.o_pc && !this.b_lo_held) { this.o_mgr.set_stream_local(__o_roap_stream); this.o_local_stream = __o_roap_stream; var c = this; this.o_pc = new __o_peerconnection_class("STUN stun.l.google.com:19302", function(e, d) { if (e) { c.o_sdp_jsep_lo.addCandidate(e) } if (!d) { c.o_sdp_lo = tsdp_message.prototype.Parse(c.o_sdp_jsep_lo.toSdp()); if (c.o_sdp_lo) { c.decorate_lo() } if (c.o_mgr) { c.o_mgr.callback(tmedia_session_events_e.GET_LO_SUCCESS, c.e_type) } c.b_sdp_lo_pending = false } }); this.o_pc.o_session = this; this.o_pc.o_mgr = this.o_mgr; this.subscribe_stream_events() } if (!this.o_sdp_lo && !this.b_sdp_lo_pending) { var a = true; var b = ((this.b_sdp_ro_pending || this.b_sdp_ro_offer) && (this.o_sdp_ro != null)); if (this.o_pc.localDescription) { switch (this.o_pc.iceState) { case __o_peerconnection_class.ICE_COMPLETED: case __o_peerconnection_class.ICE_FAILED: case __o_peerconnection_class.ICE_CLOSED: a = false; break } } if (this.b_sdp_ro_pending && this.o_sdp_ro) { this.__set_ro(this.o_sdp_ro, true) } this.o_sdp_jsep_lo = b ? this.o_pc.createAnswer(this.o_pc.remoteDescription.toSdp(), { has_audio: !!(this.e_type.i_id & tmedia_type_e.AUDIO.i_id), has_video: !!(this.e_type.i_id & tmedia_type_e.VIDEO.i_id), has_bfcpvideo: !!(this.e_type.i_id & tmedia_type_e.BFCPVIDEO.i_id) }) : this.o_pc.createOffer({ has_audio: !!(this.e_type.i_id & tmedia_type_e.AUDIO.i_id), has_video: !!(this.e_type.i_id & tmedia_type_e.VIDEO.i_id), has_bfcpvideo: !!(this.e_type.i_id & tmedia_type_e.BFCPVIDEO.i_id) }); if (!a) { this.o_sdp_lo = tsdp_message.prototype.Parse(this.o_sdp_jsep_lo.toSdp()); if (this.o_sdp_lo) { this.decorate_lo(); this.o_sdp_jsep_lo = new __o_sessiondescription_class(this.o_sdp_lo) } } this.o_pc.setLocalDescription(b ? __o_peerconnection_class.SDP_ANSWER : __o_peerconnection_class.SDP_OFFER, this.o_sdp_jsep_lo); this.b_sdp_ro_offer = false; if (a) { this.b_sdp_lo_pending = true; this.o_pc.startIce({ use_candidates: "all" }) } } return this.o_sdp_lo }; tmedia_session_jsep00.prototype.__set_ro = function(c, a) { if (!c) { tsk_utils_log_error("Invalid argument"); return -1 } this.o_sdp_ro = c; this.b_sdp_ro_offer = a; if (this.o_pc) { try { this.decorate_ro(true); this.o_pc.setRemoteDescription(a ? __o_peerconnection_class.SDP_OFFER : __o_peerconnection_class.SDP_ANSWER, new __o_sessiondescription_class(this.o_sdp_ro.toString())); if (!this.b_sdp_ro_pending && a) { this.o_sdp_lo = null } } catch (b) { this.o_mgr.callback(tmedia_session_events_e.SET_RO_FAILED, this.e_type); tsk_utils_log_error(b); return -2 } finally { this.b_sdp_ro_pending = false } if (this.o_pc.attachDisplays) { this.o_pc.attachDisplays() } if (this.o_pc.setScreencastSrcWindowId) { this.o_pc.setScreencastSrcWindowId(this.d_screencast_windowid) } } else { this.b_sdp_ro_pending = true } return 0 }; function tmedia_session_jsep01(a) { tmedia_session_jsep.call(this, a); this.o_media_constraints = { mandatory: { OfferToReceiveAudio: !!(this.e_type.i_id & tmedia_type_e.AUDIO.i_id), OfferToReceiveVideo: !!(this.e_type.i_id & tmedia_type_e.VIDEO.i_id) } }; if (tsk_utils_get_navigator_friendly_name() == "firefox") { tmedia_session_jsep01.mozThis = this; this.o_media_constraints.mandatory.MozDontOfferDataChannel = true } } tmedia_session_jsep01.mozThis = undefined; tmedia_session_jsep01.onGetUserMediaSuccess = function(c, d) { tsk_utils_log_info("onGetUserMediaSuccess"); var f = (tmedia_session_jsep01.mozThis || d); if (f && f.o_pc && f.o_mgr) { if (!f.b_sdp_lo_pending) { tsk_utils_log_warn("onGetUserMediaSuccess but no local sdp request is pending"); return } if (c) { if (!c.videoTracks || !c.audioTracks) { var b = !!(f.e_type.i_id & tmedia_type_e.AUDIO.i_id); var a = !!(f.e_type.i_id & tmedia_type_e.VIDEO.i_id); c.audioTracks = c.getAudioTracks ? c.getAudioTracks() : { length: b ? 1 : 0 }; c.videoTracks = c.getVideoTracks ? c.getVideoTracks() : { length: a ? 1 : 0 } } if (c.audioTracks.length > 0 && c.videoTracks.length == 0) { __o_jsep_stream_audio = c } else { if (c.audioTracks.length > 0 && c.videoTracks.length > 0) { __o_jsep_stream_audiovideo = c } } if (!f.o_local_stream) { f.o_mgr.callback(tmedia_session_events_e.STREAM_LOCAL_ACCEPTED, this.e_type) } if (tmedia_session_jsep01.mozThis) { __o_jsep_stream_audiovideo = __o_jsep_stream_audio = c } f.o_local_stream = c; f.o_pc.addStream(c) } else {} f.o_mgr.set_stream_local(c); var e = ((f.b_sdp_ro_pending || f.b_sdp_ro_offer) && (f.o_sdp_ro != null)); if (e) { tsk_utils_log_info("createAnswer"); f.o_pc.createAnswer(tmedia_session_jsep01.mozThis ? tmedia_session_jsep01.onCreateSdpSuccess : function(g) { tmedia_session_jsep01.onCreateSdpSuccess(g, f) }, tmedia_session_jsep01.mozThis ? tmedia_session_jsep01.onCreateSdpError : function(g) { tmedia_session_jsep01.onCreateSdpError(g, f) }, f.o_media_constraints, false) } else { tsk_utils_log_info("createOffer"); f.o_pc.createOffer(tmedia_session_jsep01.mozThis ? tmedia_session_jsep01.onCreateSdpSuccess : function(g) { tmedia_session_jsep01.onCreateSdpSuccess(g, f) }, tmedia_session_jsep01.mozThis ? tmedia_session_jsep01.onCreateSdpError : function(g) { tmedia_session_jsep01.onCreateSdpError(g, f) }, f.o_media_constraints) } } }; tmedia_session_jsep01.onGetUserMediaError = function(a, b) { tsk_utils_log_info("onGetUserMediaError"); var c = (tmedia_session_jsep01.mozThis || b); if (c && c.o_mgr) { tsk_utils_log_error(a); c.o_mgr.callback(tmedia_session_events_e.STREAM_LOCAL_REFUSED, c.e_type) } }; tmedia_session_jsep01.onCreateSdpSuccess = function(b, a) { tsk_utils_log_info("onCreateSdpSuccess"); var c = (tmedia_session_jsep01.mozThis || a); if (c && c.o_pc) { c.o_pc.setLocalDescription(b, tmedia_session_jsep01.mozThis ? tmedia_session_jsep01.onSetLocalDescriptionSuccess : function() { tmedia_session_jsep01.onSetLocalDescriptionSuccess(c) }, tmedia_session_jsep01.mozThis ? tmedia_session_jsep01.onSetLocalDescriptionError : function(d) { tmedia_session_jsep01.onSetLocalDescriptionError(d, c) }) } }; tmedia_session_jsep01.onCreateSdpError = function(a, b) { tsk_utils_log_info("onCreateSdpError"); var c = (tmedia_session_jsep01.mozThis || b); if (c && c.o_mgr) { tsk_utils_log_error(a); c.o_mgr.callback(tmedia_session_events_e.GET_LO_FAILED, c.e_type) } }; tmedia_session_jsep01.onSetLocalDescriptionSuccess = function(a) { tsk_utils_log_info("onSetLocalDescriptionSuccess"); var b = (tmedia_session_jsep01.mozThis || a); if (b && b.o_pc) { if ((b.o_pc.iceGatheringState || b.o_pc.iceState) === "complete") { tmedia_session_jsep01.onIceGatheringCompleted(b) } b.b_sdp_ro_offer = false } }; tmedia_session_jsep01.onSetLocalDescriptionError = function(a, b) { tsk_utils_log_info("onSetLocalDescriptionError"); var c = (tmedia_session_jsep01.mozThis || b); if (c && c.o_mgr) { tsk_utils_log_error(a.toString()); c.o_mgr.callback(tmedia_session_events_e.GET_LO_FAILED, c.e_type) } }; tmedia_session_jsep01.onSetRemoteDescriptionSuccess = function(a) { tsk_utils_log_info("onSetRemoteDescriptionSuccess"); var b = (tmedia_session_jsep01.mozThis || a); if (b) { if (!b.b_sdp_ro_pending && b.b_sdp_ro_offer) { b.o_sdp_lo = null } } }; tmedia_session_jsep01.onSetRemoteDescriptionError = function(a, b) { tsk_utils_log_info("onSetRemoteDescriptionError"); var c = (tmedia_session_jsep01.mozThis || b); if (c) { c.o_mgr.callback(tmedia_session_events_e.SET_RO_FAILED, c.e_type); tsk_utils_log_error(a) } }; tmedia_session_jsep01.onIceGatheringCompleted = function(b) { tsk_utils_log_info("onIceGatheringCompleted"); var c = (tmedia_session_jsep01.mozThis || b); if (c && c.o_pc) { if (!c.b_sdp_lo_pending) { tsk_utils_log_warn("onIceGatheringCompleted but no local sdp request is pending"); return } c.b_sdp_lo_pending = false; var a = (c.localDescription || c.o_pc.localDescription); if (a) { c.o_sdp_jsep_lo = a; c.o_sdp_lo = tsdp_message.prototype.Parse(c.o_sdp_jsep_lo.sdp); c.decorate_lo(); if (c.o_mgr) { c.o_mgr.callback(tmedia_session_events_e.GET_LO_SUCCESS, c.e_type) } } else { c.o_mgr.callback(tmedia_session_events_e.GET_LO_FAILED, c.e_type); tsk_utils_log_error("localDescription is null") } } }; tmedia_session_jsep01.onIceCandidate = function(c, b) { var d = (tmedia_session_jsep01.mozThis || b); if (!d || !d.o_pc) { tsk_utils_log_error("This/PeerConnection is null: unexpected"); return } var a = (d.o_pc.iceGatheringState || d.o_pc.iceState); tsk_utils_log_info("onIceCandidate = " + a); if (a === "complete" || (c && !c.candidate)) { tsk_utils_log_info("ICE GATHERING COMPLETED!"); tmedia_session_jsep01.onIceGatheringCompleted(d) } else { if (d.o_pc.iceState === "failed") { tsk_utils_log_error("Ice state is 'failed'"); d.o_mgr.callback(tmedia_session_events_e.GET_LO_FAILED, d.e_type) } } }; tmedia_session_jsep01.onNegotiationNeeded = function(b, a) { tsk_utils_log_info("onNegotiationNeeded"); var c = (tmedia_session_jsep01.mozThis || a); if (!c || !c.o_pc) { return } if ((c.o_pc.iceGatheringState || c.o_pc.iceState) !== "new") { tmedia_session_jsep01.onGetUserMediaSuccess(c.b_lo_held ? null : c.o_local_stream, c) } }; tmedia_session_jsep01.onSignalingstateChange = function(b, a) { var c = (tmedia_session_jsep01.mozThis || a); if (!c || !c.o_pc) { return } tsk_utils_log_info("onSignalingstateChange:" + c.o_pc.signalingState); if (c.o_local_stream && c.o_pc.signalingState === "have-remote-offer") { tmedia_session_jsep01.onGetUserMediaSuccess(c.o_local_stream, c) } }; tmedia_session_jsep01.prototype.__get_lo = function() { var c = this; if (!this.o_pc && !this.b_lo_held) { var d = { mandatory: {}, optional: [] }; if ((this.e_type.i_id & tmedia_type_e.SCREEN_SHARE.i_id) == tmedia_type_e.SCREEN_SHARE.i_id) { d.mandatory.chromeMediaSource = "screen" } if (this.e_type.i_id & tmedia_type_e.VIDEO.i_id) { if (this.o_video_size) { if (this.o_video_size.minWidth) { d.mandatory.minWidth = this.o_video_size.minWidth } if (this.o_video_size.minHeight) { d.mandatory.minHeight = this.o_video_size.minHeight } if (this.o_video_size.maxWidth) { d.mandatory.maxWidth = this.o_video_size.maxWidth } if (this.o_video_size.maxHeight) { d.mandatory.maxHeight = this.o_video_size.maxHeight } } try { tsk_utils_log_info("Video Contraints:" + JSON.stringify(d)) } catch (b) {} } var a = this.ao_ice_servers; if (!a) { a = tmedia_session_jsep01.mozThis ? [{ url: "stun:23.21.150.121:3478" }, { url: "stun:216.93.246.18:3478" }, { url: "stun:66.228.45.110:3478" }, { url: "stun:173.194.78.127:19302" }] : [{ url: "stun:stun.l.google.com:19302" }, { url: "stun:stun.counterpath.net:3478" }, { url: "stun:numb.viagenie.ca:3478" }] } try { tsk_utils_log_info("ICE servers:" + JSON.stringify(a)) } catch (b) {} this.o_pc = new __o_peerconnection_class((a && !a.length) ? null : { iceServers: a }, this.o_media_constraints); this.o_pc.onicecandidate = tmedia_session_jsep01.mozThis ? tmedia_session_jsep01.onIceCandidate : function(e) { tmedia_session_jsep01.onIceCandidate(e, c) }; this.o_pc.onnegotiationneeded = tmedia_session_jsep01.mozThis ? tmedia_session_jsep01.onNegotiationNeeded : function(e) { tmedia_session_jsep01.onNegotiationNeeded(e, c) }; this.o_pc.onsignalingstatechange = tmedia_session_jsep01.mozThis ? tmedia_session_jsep01.onSignalingstateChange : function(e) { tmedia_session_jsep01.onSignalingstateChange(e, c) }; this.o_pc.o_mgr = this.o_mgr; if (!tmedia_session_jsep01.mozThis) { this.o_pc.o_session = this } this.subscribe_stream_events() } if (!this.o_sdp_lo && !this.b_sdp_lo_pending) { this.b_sdp_lo_pending = true; if (this.b_sdp_ro_pending && this.o_sdp_ro) { this.__set_ro(this.o_sdp_ro, true) } if (this.e_type == tmedia_type_e.AUDIO && (this.b_cache_stream && __o_jsep_stream_audio)) { tmedia_session_jsep01.onGetUserMediaSuccess(__o_jsep_stream_audio, c) } else { if (this.e_type == tmedia_type_e.AUDIO_VIDEO && (this.b_cache_stream && __o_jsep_stream_audiovideo)) { tmedia_session_jsep01.onGetUserMediaSuccess(__o_jsep_stream_audiovideo, c) } else { if (!this.b_lo_held && !this.o_local_stream) { this.o_mgr.callback(tmedia_session_events_e.STREAM_LOCAL_REQUESTED, this.e_type); navigator.nativeGetUserMedia({ audio: (this.e_type == tmedia_type_e.SCREEN_SHARE) ? false : !!(this.e_type.i_id & tmedia_type_e.AUDIO.i_id), video: !!(this.e_type.i_id & tmedia_type_e.VIDEO.i_id) ? d : false, data: false }, tmedia_session_jsep01.mozThis ? tmedia_session_jsep01.onGetUserMediaSuccess : function(e) { tmedia_session_jsep01.onGetUserMediaSuccess(e, c) }, tmedia_session_jsep01.mozThis ? tmedia_session_jsep01.onGetUserMediaError : function(e) { tmedia_session_jsep01.onGetUserMediaError(e, c) }) } } } } return this.o_sdp_lo }; tmedia_session_jsep01.prototype.__set_ro = function(c, a) { if (!c) { tsk_utils_log_error("Invalid argument"); return -1 } this.o_sdp_ro = c; this.b_sdp_ro_offer = a; if (a) { this.o_sdp_lo = null } if (this.o_pc) { try { var d = this; this.decorate_ro(false); tsk_utils_log_info("setRemoteDescription(" + (a ? "offer)" : "answer)") + "\n" + this.o_sdp_ro); this.o_pc.setRemoteDescription(new __o_sessiondescription_class({ type: a ? "offer" : "answer", sdp: d.o_sdp_ro.toString() }), tmedia_session_jsep01.mozThis ? tmedia_session_jsep01.onSetRemoteDescriptionSuccess : function() { tmedia_session_jsep01.onSetRemoteDescriptionSuccess(d) }, tmedia_session_jsep01.mozThis ? tmedia_session_jsep01.onSetRemoteDescriptionError : function(e) { tmedia_session_jsep01.onSetRemoteDescriptionError(e, d) }) } catch (b) { tsk_utils_log_error(b); this.o_mgr.callback(tmedia_session_events_e.SET_RO_FAILED, this.e_type); return -2 } finally { this.b_sdp_ro_pending = false } } else { this.b_sdp_ro_pending = true } return 0 }; var __o_session_roap = null; var tmedia_session_state_e = { NONE: -1, OFFER_SENT: 0, OFFER_RECEIVED: 1, ANSWER_SENT: 2, ANSWER_RECEIVED: 3, LOCAL_HOLD: 10 }; function tmedia_session_roap(a) { this.__proto__.__proto__ = new tmedia_session(tmedia_type_e.AUDIO_VIDEO, a); this.e_state = tmedia_session_state_e.NONE; this.o_pc = null; this.o_pc_json = null; this.o_remote_stream = null; this.o_local_stream = null; this.o_sdp_json_lo = null; this.o_sdp_lo = null; this.o_sdp_json_ro = null; this.o_sdp_ro = null; this.b_ro_changed = false; this.b_lo_held = false; this.b_ro_held = false } tmedia_session_roap.prototype.__set = function(a) { return 0 }; tmedia_session_roap.prototype.__prepare = function() { return 0 }; tmedia_session_roap.prototype.__start = function() { return 0 }; tmedia_session_roap.prototype.__pause = function() { return 0 }; tmedia_session_roap.prototype.__stop = function() { tsk_utils_log_info("PeerConnection::stop()"); if (this.o_pc) { this.o_pc.close(); this.o_pc = null } this.o_mgr.set_stream_remote(null); this.o_mgr.set_stream_local(null); return 0 }; tmedia_session_roap.prototype.__get_lo = function() { tsk_utils_log_info("ROAP: __get_lo"); if (!this.o_pc) { __o_session_roap = this; this.o_mgr.set_stream_local(__o_roap_stream); __o_session_roap.o_local_stream = __o_roap_stream; __o_session_roap.o_pc = new __o_peerconnection_class("STUN stun.l.google.com:19302", __o_session_roap.__on_signaling_message); __o_session_roap.o_pc.o_session = __o_session_roap; __o_session_roap.o_pc.onstatechange = tmedia_session_roap.prototype.__on_state_change; __o_session_roap.o_pc.onconnecting = tmedia_session_roap.prototype.__on_connecting; __o_session_roap.o_pc.onopen = tmedia_session_roap.prototype.__on_open; __o_session_roap.o_pc.onaddstream = tmedia_session_roap.prototype.__on_add_stream; __o_session_roap.o_pc.onremovestream = tmedia_session_roap.prototype.__on_remove_stream; if (__o_session_roap.o_pc) { tsk_utils_log_info("ROAP: __get_lo::addStream()"); __o_session_roap.o_pc.addStream(__o_session_roap.o_local_stream) } if (this.e_state == tmedia_session_state_e.OFFER_RECEIVED && this.o_sdp_ro) { this.__set_ro(this.o_sdp_ro, true) } return null } return this.o_sdp_lo }; tmedia_session_roap.prototype.__hold = function() { this.b_lo_held = true; if (this.o_pc && this.o_local_stream) { this.o_pc.removeStream(this.o_local_stream); return 0 } tsk_utils_log_error("Invalid state"); return -1 }; tmedia_session_roap.prototype.__set_ro = function(g, k) { tsk_utils_log_info("ROAP: __set_ro"); this.o_sdp_ro = g; if (!this.o_pc) { this.e_state = tmedia_session_state_e.OFFER_RECEIVED; return 0 } var h = null; var c; var a = 1; var f = Math.floor((Math.random() * 65535)); var j; var d; if ((c = this.o_sdp_ro.get_header(tsdp_header_type_e.O))) { a = c.i_sess_version } this.e_state = k ? tmedia_session_state_e.OFFER_RECEIVED : tmedia_session_state_e.ANSWER_RECEIVED; if (this.o_pc_json) { j = this.o_pc_json.answererSessionId ? this.o_pc_json.answererSessionId : tsk_string_random(16); d = this.o_pc_json.offererSessionId ? this.o_pc_json.offererSessionId : tsk_string_random(16); if (this.o_pc_json.messageType == "OFFER") { h = tsk_string_format('{\n"answererSessionId" : "{0}",\n"messageType" : "ANSWER",\n"offererSessionId" : "{1}",\n"sdp" : "{2}",\n"seq" : {3}\n}\n', j, d, this.o_sdp_ro.toString("\\r\\n"), this.o_sdp_json_lo.seq) } else { h = tsk_string_format('{\n"answererSessionId" : "{0}",\n"messageType" : "OFFER",\n"offererSessionId" : "{1}",\n"sdp" : "{2}",\n"seq" : {3},\n"tieBreaker": {4}\n}\n', j, d, this.o_sdp_ro.toString("\\r\\n"), (this.o_sdp_json_lo.seq + 1), f) } } else { h = tsk_string_format('{\n"messageType" : "OFFER",\n"offererSessionId" : "{0}",\n"sdp" : "{1}",\n"seq" : {2},\n"tieBreaker": {3}\n}\n', tsk_string_random(16), this.o_sdp_ro.toString("\\r\\n"), a, f) } try { tsk_utils_log_info("RO=" + h); this.o_sdp_json_ro = JSON.parse(h); this.o_pc.processSignalingMessage("SDP\n" + h); return 0 } catch (b) { __o_session_roap.o_mgr.callback(tmedia_session_events_e.SET_RO_FAILED, this.e_type); tsk_utils_log_error(b); return -2 } }; tmedia_session_roap.prototype.__acked = function() { if (this.o_sdp_json_lo) { if (this.o_sdp_json_lo.messageType == "ANSWER") { var a = tsk_string_format('SDP\n{\n"answererSessionId" : "{0}",\n"messageType" : "OK",\n"offererSessionId" : "{1}",\n"seq" : {2}\n}\n', this.o_sdp_json_lo.offererSessionId, this.o_sdp_json_lo.answererSessionId, this.o_sdp_json_lo.seq); tsk_utils_log_info("ACK=" + a); try { this.o_pc.processSignalingMessage(a) } catch (b) { tsk_utils_log_error(b); return -2 } } } return 0 }; tmedia_session_roap.prototype.__on_signaling_message = function(k) { tsk_utils_log_info("LO=" + k); if (tsk_string_index_of(k, 3, "SDP") == 0) { k = k.substring(3) } try { __o_session_roap.o_pc_json = JSON.parse(k); if (__o_session_roap.o_pc_json.messageType == "OFFER" || __o_session_roap.o_pc_json.messageType == "ANSWER") { var j = tsdp_message.prototype.Parse(__o_session_roap.o_pc_json.sdp); if (!j) { tsk_utils_log_error("failed to parse sdp" + __o_session_roap.o_pc_json.sdp); __o_session_roap.o_mgr.callback(tmedia_session_events_e.GET_LO_FAILED, this.e_type); return } var b = j.get_header_m_by_name("audio"); var f = j.get_header_m_by_name("video"); __o_session_roap.o_sdp_json_lo = __o_session_roap.o_pc_json; __o_session_roap.o_sdp_lo = j; var a; if ((a = __o_session_roap.o_sdp_lo.get_header(tsdp_header_type_e.S))) { a.s_value = "webrtc (roap)" } var g; if ((g = __o_session_roap.o_sdp_lo.get_header(tsdp_header_type_e.O))) { g.i_sess_version = __o_session_roap.o_sdp_json_lo.seq } if (__o_session_roap.b_lo_held || __o_session_roap.b_ro_held) { var h; var d = 0; while ((h = __o_session_roap.o_sdp_lo.get_header_at(tsdp_header_type_e.M, d++))) { h.set_holdresume_att(__o_session_roap.b_lo_held, __o_session_roap.b_ro_held) } } if (__o_session_roap.e_state == tmedia_session_state_e.LOCAL_HOLD) { __o_session_roap.e_state = tmedia_session_state_e.OFFER_SENT } __o_session_roap.o_mgr.callback(tmedia_session_events_e.GET_LO_SUCCESS, this.e_type) } else { if (__o_session_roap.o_pc_json.messageType == "OK") { __o_session_roap.o_mgr.callback(tmedia_session_events_e.SET_RO_SUCCESS, this.e_type) } } if (__o_session_roap.o_pc_json.messageType == "ERROR") { tsk_utils_log_error("onSignalingMessage::messageType = ERROR"); __o_session_roap.o_mgr.callback(tmedia_session_events_e.GET_LO_FAILED, this.e_type) } } catch (c) { __o_session_roap.o_mgr.callback(tmedia_session_events_e.GET_LO_FAILED, this.e_type); tsk_utils_log_error(c); return } }; tmedia_session_roap.prototype.__on_state_change = function(a) { tsk_utils_log_info("__on_state_change") }; tmedia_session_roap.prototype.__on_connecting = function(a) { tsk_utils_log_info("__on_connecting") }; tmedia_session_roap.prototype.__on_open = function(a) { tsk_utils_log_info("__on_open") }; tmedia_session_roap.prototype.__on_add_stream = function(a) { tsk_utils_log_info("__on_add_stream"); if (__o_session_roap) { __o_session_roap.o_remote_stream = a.stream; if (__o_session_roap.o_mgr) { __o_session_roap.o_mgr.set_stream_remote(a.stream) } } }; tmedia_session_roap.prototype.__on_remove_stream = function(a) { tsk_utils_log_info("__on_remove_stream"); if (__o_session_roap) { __o_session_roap.o_remote_stream = null; if (__o_session_roap.o_mgr) { __o_session_roap.o_mgr.set_stream_remote(null) } } }; var tmedia_param_type_e = { CODEC: 0, SESSION: 1, MANAGER: 2 }; function tmedia_param(b, c, a, d) { this.e_type = b; this.e_media_type = c; this.s_key = a; this.o_value = d } var tmedia_qos_status_e = { CURR: 0, DEST: 1, CONF: 3 }; var tmedia_qos_ptype_e = { QOS: 0 }; var tmedia_qos_stype_e = { NONE: 0, SEGMENTED: 1, E2E: 2 }; var tmedia_qos_strength_e = { NONE: 0, FAILURE: 1, UNKNOWN: 2, OPTIONAL: 3, MANDATORY: 4 }; var tmedia_qos_direction_e = { NONE: 0, SEND: (1 << 1), RECV: (1 << 2), SEND_RECV: (1 << 1) | (1 << 2) }; var tsdp_header_type_e = { NONE: { i_rank: -1, c_name: null }, A: { i_rank: 13, c_name: "a" }, B: { i_rank: 8, c_name: "b" }, C: { i_rank: 7, c_name: "c" }, DUMMY: { i_rank: 255, c_name: "*" }, E: { i_rank: 5, c_name: "e" }, I: { i_rank: 3, c_name: "i" }, K: { i_rank: 12, c_name: "k" }, M: { i_rank: 14, c_name: "m" }, O: { i_rank: 1, c_name: "o" }, P: { i_rank: 6, c_name: "p" }, R: { i_rank: 10, c_name: "r" }, S: { i_rank: 2, c_name: "s" }, T: { i_rank: 9, c_name: "t" }, U: { i_rank: 4, c_name: "u" }, V: { i_rank: 0, c_name: "v" }, Z: { i_rank: 11, c_name: "z" } }; function tsdp_header(a) { this.e_type = a } tsdp_header.prototype.tostring_full = function(a, b) { return tsk_string_format("{0}={1}{2}", this.get_name(), this.toString(b), a ? "" : (b ? b : "\r\n")) }; tsdp_header.prototype.get_name = function() { if (this.e_type == tsdp_header_type_e.DUMMY) { return this.c_name } return this.e_type.c_name }; function tsdp_header_compare_by_rank(b, a) { if (b && a) { return b.e_type.i_rank - a.e_type.i_rank } return -1 } if (!window.__b_release_mode) { tsdp_api_add_js_scripts("head", "src/tinySDP/src/headers/tsdp_header_A.js", "src/tinySDP/src/headers/tsdp_header_C.js", "src/tinySDP/src/headers/tsdp_header_M.js", "src/tinySDP/src/headers/tsdp_header_O.js", "src/tinySDP/src/headers/tsdp_header_Str.js", "src/tinySDP/src/headers/tsdp_header_V.js") } tsdp_header_A.prototype = Object.create(tsdp_header.prototype); _tsdp_machine_parser_header_A_actions = [0, 1, 0, 1, 1, 1, 2, 2, 0, 2]; _tsdp_machine_parser_header_A_key_offsets = [0, 0, 1, 3, 18, 19, 35, 35, 38]; _tsdp_machine_parser_header_A_trans_keys = [97, 32, 61, 32, 33, 37, 39, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 10, 13, 33, 37, 39, 58, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 13, 0, 65535, 13, 0, 65535, 0]; _tsdp_machine_parser_header_A_single_lengths = [0, 1, 2, 5, 1, 6, 0, 1, 1]; _tsdp_machine_parser_header_A_range_lengths = [0, 0, 0, 5, 0, 5, 0, 1, 1]; _tsdp_machine_parser_header_A_index_offsets = [0, 0, 2, 5, 16, 18, 30, 31, 34]; _tsdp_machine_parser_header_A_indicies = [0, 1, 0, 2, 1, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 4, 1, 5, 6, 6, 6, 7, 6, 6, 6, 6, 6, 6, 1, 1, 9, 8, 1, 11, 10, 1, 0]; _tsdp_machine_parser_header_A_trans_targs = [2, 0, 3, 5, 6, 4, 5, 7, 8, 4, 8, 4]; _tsdp_machine_parser_header_A_trans_actions = [0, 0, 0, 1, 0, 3, 0, 3, 1, 7, 0, 5]; _tsdp_machine_parser_header_A_eof_actions = [0, 0, 0, 0, 0, 3, 0, 7, 5]; tsdp_machine_parser_header_A_start = 1; tsdp_machine_parser_header_A_first_final = 5; tsdp_machine_parser_header_A_error = 0; tsdp_machine_parser_header_A_en_main = 1; function tsdp_header_A(b, a) { tsdp_header.call(this, tsdp_header_type_e.A); this.s_field = b; this.s_value = a } tsdp_header_A.prototype.toString = function() { return tsk_string_format("{0}{1}{2}", this.s_field, this.s_value ? ":" : "", this.s_value ? this.s_value : "") }; tsdp_header_A.prototype.RemoveAllByField = function(c, b) { var a; if (!c || !b) { tsk_utils_log_error("Invalid parameter"); return -1 } for (i = 0; i < c.length;) { a = c[i]; if (tsk_string_iequals(b, a.s_field)) { c.splice(i, 1); continue }++i } return 0 }; tsdp_header_A.prototype.Parse = function(m) { var f = 0; var k = 0; var v = m.length; var h = v; var w = tsk_buff_str2ib(m); var u; var a = new tsdp_header_A(null, null); f = tsdp_machine_parser_header_A_start; var g, n, c, e, d, r, l; var o, j, b, q, t; var s; g = n = c = r = l = null; o = 0; j = 10; b = 15; q = 20; t = 30; s = 40; while (true) { _trigger_goto = false; if (o <= 0) { if (k == v) { o = t; continue } if (f == 0) { o = s; continue } } if (o <= j) { c = _tsdp_machine_parser_header_A_key_offsets[f]; n = _tsdp_machine_parser_header_A_index_offsets[f]; g = _tsdp_machine_parser_header_A_single_lengths[f]; _break_match = false; do { if (g > 0) { _lower = c; _upper = c + g - 1; while (true) { if (_upper < _lower) { break } _mid = _lower + ((_upper - _lower) >> 1); if (w[k] < _tsdp_machine_parser_header_A_trans_keys[_mid]) { _upper = _mid - 1 } else { if (w[k] > _tsdp_machine_parser_header_A_trans_keys[_mid]) { _lower = _mid + 1 } else { n += (_mid - c); _break_match = true; break } } } if (_break_match) { break } c += g; n += g } g = _tsdp_machine_parser_header_A_range_lengths[f]; if (g > 0) { _lower = c; _upper = c + (g << 1) - 2; while (true) { if (_upper < _lower) { break } _mid = _lower + (((_upper - _lower) >> 1) & ~1); if (w[k] < _tsdp_machine_parser_header_A_trans_keys[_mid]) { _upper = _mid - 2 } else { if (w[k] > _tsdp_machine_parser_header_A_trans_keys[_mid + 1]) { _lower = _mid + 2 } else { n += ((_mid - c) >> 1); _break_match = true; break } } } if (_break_match) { break } n += g } } while (false); n = _tsdp_machine_parser_header_A_indicies[n]; f = _tsdp_machine_parser_header_A_trans_targs[n]; if (_tsdp_machine_parser_header_A_trans_actions[n] != 0) { r = _tsdp_machine_parser_header_A_trans_actions[n]; l = _tsdp_machine_parser_header_A_actions[r]; r += 1; while (l > 0) { l -= 1; r += 1; switch (_tsdp_machine_parser_header_A_actions[r - 1]) { case 0: u = k; break; case 1: a.s_field = tsk_ragel_parser_get_string(m, k, u); break; case 2: a.s_value = tsk_ragel_parser_get_string(m, k, u); break } } } if (_trigger_goto) { continue } } if (o <= q) { if (f == 0) { o = s; continue } k += 1; if (k != v) { o = j; continue } } if (o <= t) { if (k == h) { __acts = _tsdp_machine_parser_header_A_eof_actions[f]; __nacts = _tsdp_machine_parser_header_A_actions[__acts]; __acts += 1; while (__nacts > 0) { __nacts -= 1; __acts += 1; switch (_tsdp_machine_parser_header_A_actions[__acts - 1]) { case 0: u = k; break; case 1: a.s_field = tsk_ragel_parser_get_string(m, k, u); break; case 2: a.s_value = tsk_ragel_parser_get_string(m, k, u); break } } if (_trigger_goto) { continue } } } if (o <= s) { break } } if (f < 5) { tsk_utils_log_error('Failed to parse "a=" header: ' + m); return null } return a }; tsdp_header_C.prototype = Object.create(tsdp_header.prototype); _tsdp_machine_parser_header_C_actions = [0, 1, 0, 1, 1, 1, 2, 1, 3, 2, 0, 2, 2, 0, 3]; _tsdp_machine_parser_header_C_key_offsets = [0, 0, 1, 3, 6, 9, 12, 15, 16, 19, 22]; _tsdp_machine_parser_header_C_trans_keys = [99, 32, 61, 32, 0, 65535, 32, 0, 65535, 32, 0, 65535, 32, 0, 65535, 10, 13, 0, 65535, 13, 0, 65535, 0]; _tsdp_machine_parser_header_C_single_lengths = [0, 1, 2, 1, 1, 1, 1, 1, 1, 1, 0]; _tsdp_machine_parser_header_C_range_lengths = [0, 0, 0, 1, 1, 1, 1, 0, 1, 1, 0]; _tsdp_machine_parser_header_C_index_offsets = [0, 0, 2, 5, 8, 11, 14, 17, 19, 22, 25]; _tsdp_machine_parser_header_C_trans_targs = [2, 0, 2, 3, 0, 3, 4, 0, 5, 4, 0, 8, 6, 0, 8, 6, 0, 10, 0, 7, 9, 0, 7, 9, 0, 0, 0]; _tsdp_machine_parser_header_C_trans_actions = [0, 0, 0, 0, 0, 0, 1, 0, 3, 0, 0, 9, 1, 0, 5, 0, 0, 0, 0, 12, 1, 0, 7, 0, 0, 0, 0]; _tsdp_machine_parser_header_C_eof_actions = [0, 0, 0, 0, 0, 0, 0, 0, 12, 7, 0]; tsdp_machine_parser_header_C_start = 1; tsdp_machine_parser_header_C_first_final = 8; tsdp_machine_parser_header_C_error = 0; tsdp_machine_parser_header_C_en_main = 1; function tsdp_header_C(c, b, a) { tsdp_header.call(this, tsdp_header_type_e.C); this.s_nettype = c; this.s_addrtype = b; this.s_addr = a } tsdp_header_C.prototype.toString = function() { return tsk_string_format("{0} {1} {2}", this.s_nettype, this.s_addrtype, this.s_addr) }; tsdp_header_C.prototype.Parse = function(m) { var f = 0; var k = 0; var v = m.length; var h = v; var w = tsk_buff_str2ib(m); var u; var a = new tsdp_header_C(null, null, null); f = tsdp_machine_parser_header_C_start; var g, n, c, e, d, r, l; var o, j, b, q, t; var s; g = n = c = r = l = null; o = 0; j = 10; b = 15; q = 20; t = 30; s = 40; while (true) { _trigger_goto = false; if (o <= 0) { if (k == v) { o = t; continue } if (f == 0) { o = s; continue } } if (o <= j) { c = _tsdp_machine_parser_header_C_key_offsets[f]; n = _tsdp_machine_parser_header_C_index_offsets[f]; g = _tsdp_machine_parser_header_C_single_lengths[f]; _break_match = false; do { if (g > 0) { _lower = c; _upper = c + g - 1; while (true) { if (_upper < _lower) { break } _mid = _lower + ((_upper - _lower) >> 1); if (w[k] < _tsdp_machine_parser_header_C_trans_keys[_mid]) { _upper = _mid - 1 } else { if (w[k] > _tsdp_machine_parser_header_C_trans_keys[_mid]) { _lower = _mid + 1 } else { n += (_mid - c); _break_match = true; break } } } if (_break_match) { break } c += g; n += g } g = _tsdp_machine_parser_header_C_range_lengths[f]; if (g > 0) { _lower = c; _upper = c + (g << 1) - 2; while (true) { if (_upper < _lower) { break } _mid = _lower + (((_upper - _lower) >> 1) & ~1); if (w[k] < _tsdp_machine_parser_header_C_trans_keys[_mid]) { _upper = _mid - 2 } else { if (w[k] > _tsdp_machine_parser_header_C_trans_keys[_mid + 1]) { _lower = _mid + 2 } else { n += ((_mid - c) >> 1); _break_match = true; break } } } if (_break_match) { break } n += g } } while (false); f = _tsdp_machine_parser_header_C_trans_targs[n]; if (_tsdp_machine_parser_header_C_trans_actions[n] != 0) { r = _tsdp_machine_parser_header_C_trans_actions[n]; l = _tsdp_machine_parser_header_C_actions[r]; r += 1; while (l > 0) { l -= 1; r += 1; switch (_tsdp_machine_parser_header_C_actions[r - 1]) { case 0: u = k; break; case 1: a.s_nettype = tsk_ragel_parser_get_string(m, k, u); break; case 2: a.s_addrtype = tsk_ragel_parser_get_string(m, k, u); break; case 3: a.s_addr = tsk_ragel_parser_get_string(m, k, u); break } } } if (_trigger_goto) { continue } } if (o <= q) { if (f == 0) { o = s; continue } k += 1; if (k != v) { o = j; continue } } if (o <= t) { if (k == h) { __acts = _tsdp_machine_parser_header_C_eof_actions[f]; __nacts = _tsdp_machine_parser_header_C_actions[__acts]; __acts += 1; while (__nacts > 0) { __nacts -= 1; __acts += 1; switch (_tsdp_machine_parser_header_C_actions[__acts - 1]) { case 0: u = k; break; case 3: a.s_addr = tsk_ragel_parser_get_string(m, k, u); break } } if (_trigger_goto) { continue } } } if (o <= s) { break } } if (f < 8) { tsk_utils_log_error('Failed to parse "c=" header: ' + m); return null } return a }; tsdp_header_M.prototype = Object.create(tsdp_header.prototype); _tsdp_machine_parser_header_M_actions = [0, 1, 0, 1, 1, 1, 2, 1, 3, 1, 4]; _tsdp_machine_parser_header_M_key_offsets = [0, 0, 1, 3, 18, 33, 35, 39, 53, 54, 68, 70, 73, 88, 88, 103]; _tsdp_machine_parser_header_M_trans_keys = [109, 32, 61, 32, 33, 37, 39, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 32, 33, 37, 39, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 48, 57, 32, 47, 48, 57, 33, 37, 39, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 10, 33, 37, 39, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 48, 57, 32, 48, 57, 13, 32, 33, 37, 39, 47, 126, 42, 43, 45, 57, 65, 90, 95, 122, 13, 33, 37, 39, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 13, 32, 33, 37, 39, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 0]; _tsdp_machine_parser_header_M_single_lengths = [0, 1, 2, 5, 5, 0, 2, 4, 1, 4, 0, 1, 7, 0, 5, 6]; _tsdp_machine_parser_header_M_range_lengths = [0, 0, 0, 5, 5, 1, 1, 5, 0, 5, 1, 1, 4, 0, 5, 5]; _tsdp_machine_parser_header_M_index_offsets = [0, 0, 2, 5, 16, 27, 29, 33, 43, 45, 55, 57, 60, 72, 73, 84]; _tsdp_machine_parser_header_M_indicies = [0, 1, 0, 2, 1, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 1, 6, 1, 7, 8, 9, 1, 10, 10, 10, 10, 10, 10, 10, 10, 10, 1, 11, 1, 12, 12, 12, 12, 12, 12, 12, 12, 12, 1, 13, 1, 7, 14, 1, 15, 16, 12, 12, 12, 17, 12, 12, 12, 12, 12, 1, 1, 18, 19, 19, 19, 19, 19, 19, 19, 19, 19, 1, 20, 21, 22, 22, 22, 22, 22, 22, 22, 22, 22, 1, 0]; _tsdp_machine_parser_header_M_trans_targs = [2, 0, 3, 4, 5, 4, 6, 7, 10, 6, 12, 13, 12, 11, 11, 8, 14, 9, 8, 15, 8, 14, 15]; _tsdp_machine_parser_header_M_trans_actions = [0, 0, 0, 1, 3, 0, 1, 5, 5, 0, 1, 0, 0, 1, 0, 7, 7, 0, 0, 1, 9, 9, 0]; _tsdp_machine_parser_header_M_eof_actions = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 9]; tsdp_machine_parser_header_M_start = 1; tsdp_machine_parser_header_M_first_final = 12; tsdp_machine_parser_header_M_error = 0; tsdp_machine_parser_header_M_en_main = 1; function tsdp_header_M(c, b, a) { tsdp_header.call(this, tsdp_header_type_e.M); this.s_media = c; this.i_port = b; this.i_nports = 0; this.s_proto = a; this.as_fmt = new Array(); this.o_hdr_I = null; this.o_hdr_C = null; this.ao_hdr_B = new Array(); this.o_hdr_K = null; this.ao_hdr_A = new Array(); this.ao_hdr_Dummy = new Array() } tsdp_header_M.prototype.toString = function(c) { if (!c) { c = "\r\n" } var d = tsk_string_format("{0} {1}{2}{3} {4}", this.s_media, this.i_port, this.i_nports ? "/" : "", this.i_nports ? this.i_nports : "", this.s_proto); for (var b = 0; b < this.as_fmt.length; ++b) { d += " " + this.as_fmt[b] } var a = !this.o_hdr_I && !this.o_hdr_C && this.ao_hdr_B.length == 0 && !this.o_hdr_K && this.ao_hdr_A.length.length == 0; if (a) { return d } d += c; if (this.o_hdr_I) { d += this.o_hdr_I.tostring_full(false, c) } if (this.o_hdr_C) { d += this.o_hdr_C.tostring_full(false, c) } for (var b = 0; b < this.ao_hdr_B.length; ++b) { d += this.ao_hdr_B[b].tostring_full(false, c) } if (this.o_hdr_K) { d += this.o_hdr_K.tostring_full(false, c) } for (var b = 0; b < this.ao_hdr_A.length; ++b) { d += this.ao_hdr_A[b].tostring_full(false, c) } for (var b = 0; b < this.ao_hdr_Dummy.length; ++b) { d += this.ao_hdr_Dummy[b].tostring_full(false, c) } return d.substring(0, d.length - c.length) }; tsdp_header_M.prototype.remove_header = function(a) { switch (a) { case tsdp_header_type_e.I: this.o_hdr_I = null; break; case tsdp_header_type_e.C: this.o_hdr_C = null; break; case tsdp_header_type_e.B: this.ao_hdr_B.splice(0, this.ao_hdr_B.length); break; case tsdp_header_type_e.K: this.o_hdr_K = null; break } return 0 }; tsdp_header_M.prototype.add_header = function(a) { if (!a) { tsk_utils_log_error("Invalid argument"); return -1 } switch (a.e_type) { case tsdp_header_type_e.I: this.o_hdr_I = a; break; case tsdp_header_type_e.C: this.o_hdr_C = a; break; case tsdp_header_type_e.B: this.ao_hdr_B.push(a); break; case tsdp_header_type_e.K: this.o_hdr_K = a; break; case tsdp_header_type_e.A: this.ao_hdr_A.push(a); break } return 0 }; tsdp_header_M.prototype.add_fmt = function(a) { if (a) { this.as_fmt.push(a) } }; tsdp_header_M.prototype.add_headers = function() { for (var a = 0; a < arguments.length; ++a) { if (arguments[a]) { this.add_header(arguments[a]) } } }; tsdp_header_M.prototype.find_a_at = function(d, c) { if (!d || c < 0) { tsk_utils_log_error("Invalid argument"); return null } var a = 0; for (var b = 0; b < this.ao_hdr_A.length; ++b) { if (this.ao_hdr_A[b].s_field == d) { if (a++ >= c) { return this.ao_hdr_A[b] } } } return null }; tsdp_header_M.prototype.find_a = function(a) { return this.find_a_at(a, 0) }; tsdp_header_M.prototype.get_rtpmap = function(g) { var b = g ? g.length : 0; if (b <= 0 || b > 3) { tsk_utils_log_error("Invalid argument"); return null } var f = null; var a, e = 0; var d; var c; while ((c = this.find_a_at(e++))) { if ((a = c.s_value ? c.s_value.length : 0) < (b + 1)) { continue } if ((d = tsk_string_index_of(c.s_value, a, g)) == 0 && (c.s_value[b] == " ")) { f = c.s_value.substring(b + 1, A_len); break } } return f }; tsdp_header_M.prototype.get_fmtp = function(g) { var b = g ? g.length : 0; if (b <= 0 || b > 3) { tsk_utils_log_error("Invalid argument"); return null } var f = null; var a, e = 0; var d; var c; while ((c = this.find_a_at(e++))) { if ((a = c.s_value ? c.s_value.length : 0) < (b + 1)) { continue } if ((d = tsk_string_index_of(c.s_value, a, g)) == 0 && (c.s_value[b] == " ")) { f = c.s_value.substring(b + 1, A_len); break } } return f }; tsdp_header_M.prototype.hold = function(a) { var c; if ((c = this.find_a(a ? "recvonly" : "sendonly"))) { c.s_field = a ? "inactive" : "recvonly" } else { if ((c = this.find_a("sendrecv"))) { c.s_field = a ? "sendonly" : "recvonly" } else { if (!(c = this.find_a(a ? "sendonly" : "recvonly")) && !(c = this.find_a("inactive"))) { var b; if ((b = new tsdp_header_A(a ? "sendonly" : "recvonly", null))) { this.add_header(b) } } } } return 0 }; tsdp_header_M.prototype.set_holdresume_att = function(e, b) { var d; var c = [ ["sendrecv", "recvonly"], ["sendonly", "inactive"] ]; if ((d = this.find_a("sendrecv")) || (d = this.find_a("sendonly")) || (d = this.find_a("recvonly")) || (d = this.find_a("inactive"))) { d.s_field = c[e ? 1 : 0][b ? 1 : 0] } else { var a; if ((a = new tsdp_header_A(c[e ? 1 : 0][b ? 1 : 0], null))) { this.add_headers(a) } } return 0 }; tsdp_header_M.prototype.is_held = function(a) { if (this.find_a("inactive")) { return true } if (a) { return this.find_a("recvonly") ? true : false } else { return this.find_a("sendonly") ? true : false } }; tsdp_header_M.prototype.resume = function(a) { var b; if ((b = this.find_a("inactive"))) { b.s_field = a ? "recvonly" : "sendonly" } else { if ((b = this.find_a(a ? "sendonly" : "recvonly"))) { b.s_field = sendrecv } } return 0 }; tsdp_header_M.prototype.Parse = function(l) { var e = 0; var j = 0; var v = l.length; var g = v; var w = tsk_buff_str2ib(l); var u; var q = new tsdp_header_M(null, 0, null); e = tsdp_machine_parser_header_M_start; var f, m, b, d, c, r, k; var n, h, a, o, t; var s; f = m = b = r = k = null; n = 0; h = 10; a = 15; o = 20; t = 30; s = 40; while (true) { _trigger_goto = false; if (n <= 0) { if (j == v) { n = t; continue } if (e == 0) { n = s; continue } } if (n <= h) { b = _tsdp_machine_parser_header_M_key_offsets[e]; m = _tsdp_machine_parser_header_M_index_offsets[e]; f = _tsdp_machine_parser_header_M_single_lengths[e]; _break_match = false; do { if (f > 0) { _lower = b; _upper = b + f - 1; while (true) { if (_upper < _lower) { break } _mid = _lower + ((_upper - _lower) >> 1); if (w[j] < _tsdp_machine_parser_header_M_trans_keys[_mid]) { _upper = _mid - 1 } else { if (w[j] > _tsdp_machine_parser_header_M_trans_keys[_mid]) { _lower = _mid + 1 } else { m += (_mid - b); _break_match = true; break } } } if (_break_match) { break } b += f; m += f } f = _tsdp_machine_parser_header_M_range_lengths[e]; if (f > 0) { _lower = b; _upper = b + (f << 1) - 2; while (true) { if (_upper < _lower) { break } _mid = _lower + (((_upper - _lower) >> 1) & ~1); if (w[j] < _tsdp_machine_parser_header_M_trans_keys[_mid]) { _upper = _mid - 2 } else { if (w[j] > _tsdp_machine_parser_header_M_trans_keys[_mid + 1]) { _lower = _mid + 2 } else { m += ((_mid - b) >> 1); _break_match = true; break } } } if (_break_match) { break } m += f } } while (false); m = _tsdp_machine_parser_header_M_indicies[m]; e = _tsdp_machine_parser_header_M_trans_targs[m]; if (_tsdp_machine_parser_header_M_trans_actions[m] != 0) { r = _tsdp_machine_parser_header_M_trans_actions[m]; k = _tsdp_machine_parser_header_M_actions[r]; r += 1; while (k > 0) { k -= 1; r += 1; switch (_tsdp_machine_parser_header_M_actions[r - 1]) { case 0: u = j; break; case 1: q.s_media = tsk_ragel_parser_get_string(l, j, u); break; case 2: q.i_port = tsk_ragel_parser_get_int(l, j, u); break; case 3: q.s_proto = tsk_ragel_parser_get_string(l, j, u); break; case 4: tsk_ragel_parser_add_string(l, j, u, q.as_fmt); break } } } if (_trigger_goto) { continue } } if (n <= o) { if (e == 0) { n = s; continue } j += 1; if (j != v) { n = h; continue } } if (n <= t) { if (j == g) { __acts = _tsdp_machine_parser_header_M_eof_actions[e]; __nacts = _tsdp_machine_parser_header_M_actions[__acts]; __acts += 1; while (__nacts > 0) { __nacts -= 1; __acts += 1; switch (_tsdp_machine_parser_header_M_actions[__acts - 1]) { case 3: q.s_proto = tsk_ragel_parser_get_string(l, j, u); break; case 4: tsk_ragel_parser_add_string(l, j, u, q.as_fmt); break } } if (_trigger_goto) { continue } } } if (n <= s) { break } } if (e < 12) { tsk_utils_log_error('Failed to parse "m=" header: ' + l); return null } return q }; tsdp_header_O.prototype = Object.create(tsdp_header.prototype); _tsdp_machine_parser_header_O_actions = [0, 1, 0, 1, 1, 1, 2, 1, 3, 1, 4, 1, 5, 1, 6, 2, 0, 4, 2, 0, 5, 2, 0, 6]; _tsdp_machine_parser_header_O_key_offsets = [0, 0, 1, 3, 6, 9, 11, 14, 16, 19, 22, 25, 28, 31, 32, 35, 38]; _tsdp_machine_parser_header_O_trans_keys = [111, 32, 61, 32, 0, 65535, 32, 0, 65535, 48, 57, 32, 48, 57, 48, 57, 32, 48, 57, 32, 0, 65535, 32, 0, 65535, 32, 0, 65535, 32, 0, 65535, 10, 13, 0, 65535, 13, 0, 65535, 0]; _tsdp_machine_parser_header_O_single_lengths = [0, 1, 2, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0]; _tsdp_machine_parser_header_O_range_lengths = [0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0]; _tsdp_machine_parser_header_O_index_offsets = [0, 0, 2, 5, 8, 11, 13, 16, 18, 21, 24, 27, 30, 33, 35, 38, 41]; _tsdp_machine_parser_header_O_trans_targs = [2, 0, 2, 3, 0, 3, 4, 0, 5, 4, 0, 6, 0, 7, 6, 0, 8, 0, 9, 8, 0, 11, 10, 0, 11, 10, 0, 14, 12, 0, 14, 12, 0, 16, 0, 13, 15, 0, 13, 15, 0, 0, 0]; _tsdp_machine_parser_header_O_trans_actions = [0, 0, 0, 0, 0, 0, 1, 0, 3, 0, 0, 1, 0, 5, 0, 0, 1, 0, 7, 0, 0, 15, 1, 0, 9, 0, 0, 18, 1, 0, 11, 0, 0, 0, 0, 21, 1, 0, 13, 0, 0, 0, 0]; _tsdp_machine_parser_header_O_eof_actions = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 13, 0]; tsdp_machine_parser_header_O_start = 1; tsdp_machine_parser_header_O_first_final = 14; tsdp_machine_parser_header_O_error = 0; tsdp_machine_parser_header_O_en_main = 1; function tsdp_header_O(f, c, a, e, d, b) { tsdp_header.call(this, tsdp_header_type_e.O); this.s_username = f; this.i_sess_id = c; this.i_sess_version = a; this.s_nettype = e; this.s_addrtype = d; this.s_addr = b } tsdp_header_O.prototype.toString = function() { return tsk_string_format("{0} {1} {2} {3} {4} {5}", this.s_username, this.i_sess_id, this.i_sess_version, this.s_nettype, this.s_addrtype, this.s_addr) }; tsdp_header_O.prototype.Parse = function(l) { var e = 0; var j = 0; var v = l.length; var g = v; var w = tsk_buff_str2ib(l); var u; var m = new tsdp_header_O(null, 0, 0, null, null, null); e = tsdp_machine_parser_header_O_start; var f, n, b, d, c, r, k; var o, h, a, q, t; var s; f = n = b = r = k = null; o = 0; h = 10; a = 15; q = 20; t = 30; s = 40; while (true) { _trigger_goto = false; if (o <= 0) { if (j == v) { o = t; continue } if (e == 0) { o = s; continue } } if (o <= h) { b = _tsdp_machine_parser_header_O_key_offsets[e]; n = _tsdp_machine_parser_header_O_index_offsets[e]; f = _tsdp_machine_parser_header_O_single_lengths[e]; _break_match = false; do { if (f > 0) { _lower = b; _upper = b + f - 1; while (true) { if (_upper < _lower) { break } _mid = _lower + ((_upper - _lower) >> 1); if (w[j] < _tsdp_machine_parser_header_O_trans_keys[_mid]) { _upper = _mid - 1 } else { if (w[j] > _tsdp_machine_parser_header_O_trans_keys[_mid]) { _lower = _mid + 1 } else { n += (_mid - b); _break_match = true; break } } } if (_break_match) { break } b += f; n += f } f = _tsdp_machine_parser_header_O_range_lengths[e]; if (f > 0) { _lower = b; _upper = b + (f << 1) - 2; while (true) { if (_upper < _lower) { break } _mid = _lower + (((_upper - _lower) >> 1) & ~1); if (w[j] < _tsdp_machine_parser_header_O_trans_keys[_mid]) { _upper = _mid - 2 } else { if (w[j] > _tsdp_machine_parser_header_O_trans_keys[_mid + 1]) { _lower = _mid + 2 } else { n += ((_mid - b) >> 1); _break_match = true; break } } } if (_break_match) { break } n += f } } while (false); e = _tsdp_machine_parser_header_O_trans_targs[n]; if (_tsdp_machine_parser_header_O_trans_actions[n] != 0) { r = _tsdp_machine_parser_header_O_trans_actions[n]; k = _tsdp_machine_parser_header_O_actions[r]; r += 1; while (k > 0) { k -= 1; r += 1; switch (_tsdp_machine_parser_header_O_actions[r - 1]) { case 0: u = j; break; case 1: m.s_username = tsk_ragel_parser_get_string(l, j, u); break; case 2: m.i_sess_id = tsk_ragel_parser_get_int(l, j, u); break; case 3: m.i_sess_version = tsk_ragel_parser_get_int(l, j, u); break; case 4: m.s_nettype = tsk_ragel_parser_get_string(l, j, u); break; case 5: m.s_addrtype = tsk_ragel_parser_get_string(l, j, u); break; case 6: m.s_addr = tsk_ragel_parser_get_string(l, j, u); break } } } if (_trigger_goto) { continue } } if (o <= q) { if (e == 0) { o = s; continue } j += 1; if (j != v) { o = h; continue } } if (o <= t) { if (j == g) { __acts = _tsdp_machine_parser_header_O_eof_actions[e]; __nacts = _tsdp_machine_parser_header_O_actions[__acts]; __acts += 1; while (__nacts > 0) { __nacts -= 1; __acts += 1; switch (_tsdp_machine_parser_header_O_actions[__acts - 1]) { case 0: u = j; break; case 6: m.s_addr = tsk_ragel_parser_get_string(l, j, u); break } } if (_trigger_goto) { continue } } } if (o <= s) { break } } if (e < 14) { tsk_utils_log_error('Failed to parse "o=" header: ' + l); return null } return m }; tsdp_header_Str.prototype = Object.create(tsdp_header.prototype); tsdp_header_B.prototype = Object.create(tsdp_header_Str.prototype); tsdp_header_E.prototype = Object.create(tsdp_header_Str.prototype); tsdp_header_I.prototype = Object.create(tsdp_header_Str.prototype); tsdp_header_K.prototype = Object.create(tsdp_header_Str.prototype); tsdp_header_P.prototype = Object.create(tsdp_header_Str.prototype); tsdp_header_R.prototype = Object.create(tsdp_header_Str.prototype); tsdp_header_S.prototype = Object.create(tsdp_header_Str.prototype); tsdp_header_T.prototype = Object.create(tsdp_header_Str.prototype); tsdp_header_U.prototype = Object.create(tsdp_header_Str.prototype); tsdp_header_Z.prototype = Object.create(tsdp_header_Str.prototype); tsdp_header_Dummy.prototype = Object.create(tsdp_header_Str.prototype); tsdp_header_Str.prototype.s_value = null; _tsdp_machine_parser_header_Str_actions = [0, 1, 0, 1, 1, 1, 2, 1, 3, 1, 4, 1, 5, 1, 6, 1, 7, 1, 8, 1, 9, 1, 10, 1, 11, 1, 12, 2, 0, 12]; _tsdp_machine_parser_header_Str_key_offsets = [0, 0, 14, 16, 18, 19, 21, 23, 25, 27, 29, 31, 33, 35, 37, 39, 43, 46]; _tsdp_machine_parser_header_Str_trans_keys = [98, 101, 105, 107, 112, 114, 115, 116, 117, 122, 65, 90, 97, 121, 32, 61, 32, 61, 10, 32, 61, 32, 61, 32, 61, 32, 61, 32, 61, 32, 61, 32, 61, 32, 61, 32, 61, 32, 61, 13, 32, 0, 65535, 13, 0, 65535, 0]; _tsdp_machine_parser_header_Str_single_lengths = [0, 10, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 0]; _tsdp_machine_parser_header_Str_range_lengths = [0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0]; _tsdp_machine_parser_header_Str_index_offsets = [0, 0, 13, 16, 19, 21, 24, 27, 30, 33, 36, 39, 42, 45, 48, 51, 55, 58]; _tsdp_machine_parser_header_Str_trans_targs = [5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 2, 2, 0, 3, 15, 0, 3, 15, 0, 17, 0, 3, 15, 0, 3, 15, 0, 3, 15, 0, 3, 15, 0, 3, 15, 0, 3, 15, 0, 3, 15, 0, 3, 15, 0, 3, 15, 0, 3, 15, 0, 4, 15, 16, 0, 4, 16, 0, 0, 0]; _tsdp_machine_parser_header_Str_trans_actions = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 23, 23, 0, 0, 0, 0, 0, 0, 3, 3, 0, 5, 5, 0, 7, 7, 0, 9, 9, 0, 11, 11, 0, 13, 13, 0, 15, 15, 0, 17, 17, 0, 19, 19, 0, 21, 21, 0, 27, 0, 1, 0, 25, 0, 0, 0, 0]; _tsdp_machine_parser_header_Str_eof_actions = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 25, 0]; tsdp_machine_parser_header_Str_start = 1; tsdp_machine_parser_header_Str_first_final = 15; tsdp_machine_parser_header_Str_error = 0; tsdp_machine_parser_header_Str_en_main = 1; function tsdp_header_Str(a, b) { tsdp_header.call(this, a); this.s_value = b } tsdp_header_Str.prototype.toString = function() { return this.s_value }; tsdp_header_Str.prototype.Parse = function(l) { var e = 0; var j = 0; var v = l.length; var g = v; var w = tsk_buff_str2ib(l); var u; var m = null; e = tsdp_machine_parser_header_Str_start; var f, n, b, d, c, r, k; var o, h, a, q, t; var s; f = n = b = r = k = null; o = 0; h = 10; a = 15; q = 20; t = 30; s = 40; while (true) { _trigger_goto = false; if (o <= 0) { if (j == v) { o = t; continue } if (e == 0) { o = s; continue } } if (o <= h) { b = _tsdp_machine_parser_header_Str_key_offsets[e]; n = _tsdp_machine_parser_header_Str_index_offsets[e]; f = _tsdp_machine_parser_header_Str_single_lengths[e]; _break_match = false; do { if (f > 0) { _lower = b; _upper = b + f - 1; while (true) { if (_upper < _lower) { break } _mid = _lower + ((_upper - _lower) >> 1); if (w[j] < _tsdp_machine_parser_header_Str_trans_keys[_mid]) { _upper = _mid - 1 } else { if (w[j] > _tsdp_machine_parser_header_Str_trans_keys[_mid]) { _lower = _mid + 1 } else { n += (_mid - b); _break_match = true; break } } } if (_break_match) { break } b += f; n += f } f = _tsdp_machine_parser_header_Str_range_lengths[e]; if (f > 0) { _lower = b; _upper = b + (f << 1) - 2; while (true) { if (_upper < _lower) { break } _mid = _lower + (((_upper - _lower) >> 1) & ~1); if (w[j] < _tsdp_machine_parser_header_Str_trans_keys[_mid]) { _upper = _mid - 2 } else { if (w[j] > _tsdp_machine_parser_header_Str_trans_keys[_mid + 1]) { _lower = _mid + 2 } else { n += ((_mid - b) >> 1); _break_match = true; break } } } if (_break_match) { break } n += f } } while (false); e = _tsdp_machine_parser_header_Str_trans_targs[n]; if (_tsdp_machine_parser_header_Str_trans_actions[n] != 0) { r = _tsdp_machine_parser_header_Str_trans_actions[n]; k = _tsdp_machine_parser_header_Str_actions[r]; r += 1; while (k > 0) { k -= 1; r += 1; switch (_tsdp_machine_parser_header_Str_actions[r - 1]) { case 0: u = j; break; case 1: m = new tsdp_header_B(); break; case 2: m = new tsdp_header_E(); break; case 3: m = new tsdp_header_I(); break; case 4: m = new tsdp_header_K(); break; case 5: m = new tsdp_header_P(); break; case 6: m = new tsdp_header_R(); break; case 7: m = new tsdp_header_S(); break; case 8: m = new tsdp_header_T(); break; case 9: m = new tsdp_header_U(); break; case 10: m = new tsdp_header_Z(); break; case 11: m = new tsdp_header_Dummy(); m.c_name = tsk_ragel_parser_get_string(l, j, u)[0]; break; case 12: if (m) { m.s_value = tsk_ragel_parser_get_string(l, j, u) } break } } } if (_trigger_goto) { continue } } if (o <= q) { if (e == 0) { o = s; continue } j += 1; if (j != v) { o = h; continue } } if (o <= t) { if (j == g) { __acts = _tsdp_machine_parser_header_Str_eof_actions[e]; __nacts = _tsdp_machine_parser_header_Str_actions[__acts]; __acts += 1; while (__nacts > 0) { __nacts -= 1; __acts += 1; switch (_tsdp_machine_parser_header_Str_actions[__acts - 1]) { case 0: u = j; break; case 12: if (m) { m.s_value = tsk_ragel_parser_get_string(l, j, u) } break } } if (_trigger_goto) { continue } } } if (o <= s) { break } } if (e < 15) { tsk_utils_log_error("Failed to parse header: " + l); return null } return m }; function tsdp_header_B(a) { tsdp_header_Str.call(this, tsdp_header_type_e.B, a) } function tsdp_header_E(a) { tsdp_header_Str.call(this, tsdp_header_type_e.E, a) } function tsdp_header_I(a) { tsdp_header_Str.call(this, tsdp_header_type_e.I, a) } function tsdp_header_K(a) { tsdp_header_Str.call(this, tsdp_header_type_e.K, a) } function tsdp_header_P(a) { tsdp_header_Str.call(this, tsdp_header_type_e.P, a) } function tsdp_header_R(a) { tsdp_header_Str.call(this, tsdp_header_type_e.R, a) } function tsdp_header_S(a) { tsdp_header_Str.call(this, tsdp_header_type_e.S, a) } function tsdp_header_T(a) { tsdp_header_Str.call(this, tsdp_header_type_e.T, a) } function tsdp_header_U(a) { tsdp_header_Str.call(this, tsdp_header_type_e.U, a) } function tsdp_header_Z(a) { tsdp_header_Str.call(this, tsdp_header_type_e.Z, a) } function tsdp_header_Dummy(b, a) { tsdp_header_Str.call(this, tsdp_header_type_e.DUMMY, a); this.s_name = b } tsdp_header_V.prototype = Object.create(tsdp_header.prototype); _tsdp_machine_parser_header_V_actions = [0, 1, 0, 1, 1]; _tsdp_machine_parser_header_V_key_offsets = [0, 0, 1, 3, 6, 7, 10]; _tsdp_machine_parser_header_V_trans_keys = [118, 32, 61, 32, 48, 57, 10, 13, 48, 57, 0]; _tsdp_machine_parser_header_V_single_lengths = [0, 1, 2, 1, 1, 1, 0]; _tsdp_machine_parser_header_V_range_lengths = [0, 0, 0, 1, 0, 1, 0]; _tsdp_machine_parser_header_V_index_offsets = [0, 0, 2, 5, 8, 10, 13]; _tsdp_machine_parser_header_V_trans_targs = [2, 0, 2, 3, 0, 3, 5, 0, 6, 0, 4, 5, 0, 0, 0]; _tsdp_machine_parser_header_V_trans_actions = [0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 0]; _tsdp_machine_parser_header_V_eof_actions = [0, 0, 0, 0, 0, 3, 0]; tsdp_machine_parser_header_V_start = 1; tsdp_machine_parser_header_V_first_final = 5; tsdp_machine_parser_header_V_error = 0; tsdp_machine_parser_header_V_en_main = 1; function tsdp_header_V(a) { tsdp_header.call(this, tsdp_header_type_e.V); this.i_version = a; this.toString = function() { return this.i_version.toString() } } tsdp_header_V.prototype.Parse = function(m) { var e = 0; var j = 0; var v = m.length; var g = v; var w = tsk_buff_str2ib(m); var u; var k = new tsdp_header_V(0); e = tsdp_machine_parser_header_V_start; var f, n, b, d, c, r, l; var o, h, a, q, t; var s; f = n = b = r = l = null; o = 0; h = 10; a = 15; q = 20; t = 30; s = 40; while (true) { _trigger_goto = false; if (o <= 0) { if (j == v) { o = t; continue } if (e == 0) { o = s; continue } } if (o <= h) { b = _tsdp_machine_parser_header_V_key_offsets[e]; n = _tsdp_machine_parser_header_V_index_offsets[e]; f = _tsdp_machine_parser_header_V_single_lengths[e]; _break_match = false; do { if (f > 0) { _lower = b; _upper = b + f - 1; while (true) { if (_upper < _lower) { break } _mid = _lower + ((_upper - _lower) >> 1); if (w[j] < _tsdp_machine_parser_header_V_trans_keys[_mid]) { _upper = _mid - 1 } else { if (w[j] > _tsdp_machine_parser_header_V_trans_keys[_mid]) { _lower = _mid + 1 } else { n += (_mid - b); _break_match = true; break } } } if (_break_match) { break } b += f; n += f } f = _tsdp_machine_parser_header_V_range_lengths[e]; if (f > 0) { _lower = b; _upper = b + (f << 1) - 2; while (true) { if (_upper < _lower) { break } _mid = _lower + (((_upper - _lower) >> 1) & ~1); if (w[j] < _tsdp_machine_parser_header_V_trans_keys[_mid]) { _upper = _mid - 2 } else { if (w[j] > _tsdp_machine_parser_header_V_trans_keys[_mid + 1]) { _lower = _mid + 2 } else { n += ((_mid - b) >> 1); _break_match = true; break } } } if (_break_match) { break } n += f } } while (false); e = _tsdp_machine_parser_header_V_trans_targs[n]; if (_tsdp_machine_parser_header_V_trans_actions[n] != 0) { r = _tsdp_machine_parser_header_V_trans_actions[n]; l = _tsdp_machine_parser_header_V_actions[r]; r += 1; while (l > 0) { l -= 1; r += 1; switch (_tsdp_machine_parser_header_V_actions[r - 1]) { case 0: u = j; break; case 1: k.i_version = tsk_ragel_parser_get_int(m, j, u); break } } } if (_trigger_goto) { continue } } if (o <= q) { if (e == 0) { o = s; continue } j += 1; if (j != v) { o = h; continue } } if (o <= t) { if (j == g) { __acts = _tsdp_machine_parser_header_V_eof_actions[e]; __nacts = _tsdp_machine_parser_header_V_actions[__acts]; __acts += 1; while (__nacts > 0) { __nacts -= 1; __acts += 1; switch (_tsdp_machine_parser_header_V_actions[__acts - 1]) { case 1: k.i_version = tsk_ragel_parser_get_int(m, j, u); break } } if (_trigger_goto) { continue } } } if (o <= s) { break } } if (e < 5) { tsk_utils_log_error('Failed to parse "v=" header: ' + m); return null } return k }; tsdp_message.prototype.__s_o_username_default = "webrtc"; tsdp_message.prototype.__i_o_session_ver_default = 2301; tsdp_message.prototype.__i_o_session_id_default = 1983; tsdp_message.prototype.__s_s_value_default = "-"; function tsdp_message(c, b, a) { this.ao_headers = new Array(); if (c) { this.add_headers(new tsdp_header_V(0), new tsdp_header_O(tsdp_message.prototype.__s_o_username_default, tsdp_message.prototype.__i_o_session_id_default, a, "IN", b ? "IP6" : "IP4", c)); this.add_headers(new tsdp_header_S(tsdp_message.prototype.__s_s_value_default)); this.add_headers(new tsdp_header_T(0, 0)) } } tsdp_message.prototype.get_media_type = function() { var d = tmedia_type_e.NONE.i_id; var c = 0; var a, b; while ((a = this.get_header_at(tsdp_header_type_e.M, c++))) { if (a.i_port == 0) { continue } if (tsk_string_iequals(a.s_media, "audio")) { d |= tmedia_type_e.AUDIO.i_id } else { if (tsk_string_iequals(a.s_media, "video")) { b = a.find_a_at("content", 0); if (b && !tsk_string_iequals(b.s_value, "main")) { d |= tmedia_type_e.BFCPVIDEO.i_id } else { d |= tmedia_type_e.VIDEO.i_id } } else { if (tsk_string_iequals(a.s_media, "message")) { d |= tmedia_type_e.MSRP.i_id } } } } return tmedia_type_from_id(d) }; tsdp_message.prototype.add_headers = function() { for (var a = 0; a < arguments.length; ++a) { if (arguments[a]) { this.ao_headers.push(arguments[a]) } } this.ao_headers.sort(tsdp_header_compare_by_rank) }; tsdp_message.prototype.add_header = function(a) { this.add_headers(a) }; tsdp_message.prototype.remove_header = function(a) { for (var b = 0; b < this.ao_headers.length;) { if (this.ao_headers[b].e_type == a) { this.ao_headers.splice(b, 1); continue }++b } }; tsdp_message.prototype.get_header_at = function(b, d) { var a = 0; for (var c = 0; c < this.ao_headers.length; ++c) { if (this.ao_headers[c].e_type == b) { if (a++ >= d) { return this.ao_headers[c] } } } return null }; tsdp_message.prototype.get_header = function(a) { return this.get_header_at(a, 0) }; tsdp_message.prototype.get_header_by_name = function(a) { for (var b = 0; b < this.ao_headers.length; ++b) { if (this.ao_headers[b].get_name() == a) { return a } } return null }; tsdp_message.prototype.get_header_a_at = function(d, c) { if (!d || c < 0) { tsk_utils_log_error("Invalid argument"); return null } var a = 0; for (var b = 0; b < this.ao_headers.length; ++b) { if (this.ao_headers[b].e_type == tsdp_header_type_e.A && this.ao_headers[b].s_field == d) { if (a++ >= c) { return this.ao_headers[b] } } } return null }; tsdp_message.prototype.get_header_a = function(a) { return this.get_header_a_at(a, 0) }; tsdp_message.prototype.add_media = function(c, b, a) { this.add_headers(new tsdp_header_M(c, b, a)) }; tsdp_message.prototype.remove_media = function(b) { for (var a = 0; a < this.ao_headers.length; ++a) { if (this.ao_headers[a].e_type == tsdp_header_type_e.M) { if (this.ao_headers[a].s_media == b) { this.ao_headers.splice(a, 1) } } } }; tsdp_message.prototype.get_header_m_by_name = function(b) { if (!b) { tsk_utils_log_error("Invalid argument"); return null } for (var a = 0; a < this.ao_headers.length; ++a) { if (this.ao_headers[a].e_type == tsdp_header_type_e.M) { if (tsk_string_iequals(this.ao_headers[a].s_media, b)) { return this.ao_headers[a] } } } return null }; tsdp_message.prototype.has_media = function(a) { return this.get_header_m_by_name(a) != null }; tsdp_message.prototype.hold = function(b) { if (!b) { tsk_utils_log_error("Invalid argument"); return -1 } var a = this.get_header_m_by_name(b); if (a) { a.hold(true) } return 0 }; tsdp_message.prototype.resume = function(b) { if (!b) { tsk_utils_log_error("Invalid argument"); return -1 } var a = this.get_header_m_by_name(b); if (a) { a.resume(true) } return 0 }; tsdp_message.prototype.toString = function(b) { var c = ""; if (!b) { b = "\r\n" } for (var a = 0; a < this.ao_headers.length; ++a) { c += this.ao_headers[a].tostring_full(false, b) } return c }; if (!window.__b_release_mode) { tsdp_api_add_js_scripts("head", "src/tinySDP/src/tsdp_parser_message.js") } _tsdp_machine_message_actions = [0, 1, 0, 1, 1, 1, 2, 1, 3, 1, 4, 1, 5, 1, 6, 1, 7, 1, 8, 1, 9, 1, 10, 1, 11, 1, 12, 1, 13, 1, 14, 1, 15, 1, 16]; _tsdp_machine_message_key_offsets = [0, 0, 2, 5, 6, 8, 11, 13, 16, 18, 21, 23, 26, 28, 31, 33, 36, 38, 41, 43, 46, 48, 51, 53, 56, 58, 61, 63, 66, 68, 71, 73, 76, 78, 81]; _tsdp_machine_message_trans_keys = [32, 61, 13, 0, 65535, 10, 32, 61, 13, 0, 65535, 32, 61, 13, 0, 65535, 32, 61, 13, 0, 65535, 32, 61, 13, 0, 65535, 32, 61, 13, 0, 65535, 32, 61, 13, 0, 65535, 32, 61, 13, 0, 65535, 32, 61, 13, 0, 65535, 32, 61, 13, 0, 65535, 32, 61, 13, 0, 65535, 32, 61, 13, 0, 65535, 32, 61, 13, 0, 65535, 32, 61, 13, 0, 65535, 32, 61, 13, 0, 65535, 32, 61, 13, 0, 65535, 65, 66, 67, 69, 73, 75, 77, 79, 80, 82, 83, 84, 85, 86, 90, 97, 98, 99, 101, 105, 107, 109, 111, 112, 114, 115, 116, 117, 118, 122, 68, 89, 100, 121, 0]; _tsdp_machine_message_single_lengths = [0, 2, 1, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 30]; _tsdp_machine_message_range_lengths = [0, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 2]; _tsdp_machine_message_index_offsets = [0, 0, 3, 6, 8, 11, 14, 17, 20, 23, 26, 29, 32, 35, 38, 41, 44, 47, 50, 53, 56, 59, 62, 65, 68, 71, 74, 77, 80, 83, 86, 89, 92, 95, 98]; _tsdp_machine_message_trans_targs = [1, 2, 0, 3, 2, 0, 34, 0, 4, 5, 0, 3, 5, 0, 6, 7, 0, 3, 7, 0, 8, 9, 0, 3, 9, 0, 10, 11, 0, 3, 11, 0, 12, 13, 0, 3, 13, 0, 14, 15, 0, 3, 15, 0, 16, 17, 0, 3, 17, 0, 18, 19, 0, 3, 19, 0, 20, 21, 0, 3, 21, 0, 22, 23, 0, 3, 23, 0, 24, 25, 0, 3, 25, 0, 26, 27, 0, 3, 27, 0, 28, 29, 0, 3, 29, 0, 30, 31, 0, 3, 31, 0, 32, 33, 0, 3, 33, 0, 1, 4, 6, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 1, 4, 6, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 8, 8, 0, 0]; _tsdp_machine_message_trans_actions = [0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 19, 0, 0, 0, 0, 0, 21, 0, 0, 0, 0, 0, 23, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 27, 0, 0, 0, 0, 0, 29, 0, 0, 0, 0, 0, 31, 0, 0, 0, 0, 0, 33, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0]; tsdp_machine_message_start = 34; tsdp_machine_message_first_final = 34; tsdp_machine_message_error = 0; tsdp_machine_message_en_main = 34; tsdp_message.prototype.Parse = function(n) { var e = 0; var j = 0; var y = n.length; var g = y; var z = tsk_buff_str2ib(n); var x; var s = new tsdp_message(); var m = null; var k = null; var t = null; e = tsdp_machine_message_start; var f, o, b, d, c, u, l; var q, h, a, r, w; var v; f = o = b = u = l = null; q = 0; h = 10; a = 15; r = 20; w = 30; v = 40; while (true) { _trigger_goto = false; if (q <= 0) { if (j == y) { q = w; continue } if (e == 0) { q = v; continue } } if (q <= h) { b = _tsdp_machine_message_key_offsets[e]; o = _tsdp_machine_message_index_offsets[e]; f = _tsdp_machine_message_single_lengths[e]; _break_match = false; do { if (f > 0) { _lower = b; _upper = b + f - 1; while (true) { if (_upper < _lower) { break } _mid = _lower + ((_upper - _lower) >> 1); if (z[j] < _tsdp_machine_message_trans_keys[_mid]) { _upper = _mid - 1 } else { if (z[j] > _tsdp_machine_message_trans_keys[_mid]) { _lower = _mid + 1 } else { o += (_mid - b); _break_match = true; break } } } if (_break_match) { break } b += f; o += f } f = _tsdp_machine_message_range_lengths[e]; if (f > 0) { _lower = b; _upper = b + (f << 1) - 2; while (true) { if (_upper < _lower) { break } _mid = _lower + (((_upper - _lower) >> 1) & ~1); if (z[j] < _tsdp_machine_message_trans_keys[_mid]) { _upper = _mid - 2 } else { if (z[j] > _tsdp_machine_message_trans_keys[_mid + 1]) { _lower = _mid + 2 } else { o += ((_mid - b) >> 1); _break_match = true; break } } } if (_break_match) { break } o += f } } while (false); e = _tsdp_machine_message_trans_targs[o]; if (_tsdp_machine_message_trans_actions[o] != 0) { u = _tsdp_machine_message_trans_actions[o]; l = _tsdp_machine_message_actions[u]; u += 1; while (l > 0) { l -= 1; u += 1; switch (_tsdp_machine_message_actions[u - 1]) { case 0: x = j; break; case 1: if (t) { if ((m = tsdp_header_A.prototype.Parse(tsk_ragel_parser_get_string(n, j, x)))) { t.ao_hdr_A.push(m) } } else { if ((m = tsdp_header_A.prototype.Parse(tsk_ragel_parser_get_string(n, j, x)))) { s.add_header(m) } } break; case 2: if (t) { if ((m = tsdp_header_B.prototype.Parse(tsk_ragel_parser_get_string(n, j, x)))) { t.ao_hdr_B.push(m) } } else { if ((m = tsdp_header_B.prototype.Parse(tsk_ragel_parser_get_string(n, j, x)))) { s.add_header(m) } } break; case 3: if (t && !t.o_hdr_C) { t.o_hdr_C = tsdp_header_C.prototype.Parse(tsk_ragel_parser_get_string(n, j, x)) } else { if ((m = tsdp_header_C.prototype.Parse(tsk_ragel_parser_get_string(n, j, x)))) { s.add_header(m) } } break; case 4: if ((m = tsdp_header_Dummy.prototype.Parse(tsk_ragel_parser_get_string(n, j, x)))) { if (t) { t.ao_hdr_Dummy.push(m) } else { s.add_header(m) } } break; case 5: if ((m = tsdp_header_E.prototype.Parse(tsk_ragel_parser_get_string(n, j, x)))) { s.add_header(m) } break; case 6: if (t && !t.o_hdr_I) { t.o_hdr_I = tsdp_header_I.prototype.Parse(tsk_ragel_parser_get_string(n, j, x)) } else { if ((m = tsdp_header_I.prototype.Parse(tsk_ragel_parser_get_string(n, j, x)))) { s.add_header(m) } } break; case 7: if (t && !t.o_hdr_K) { t.o_hdr_K = tsdp_header_K.prototype.Parse(tsk_ragel_parser_get_string(n, j, x)) } else { if ((m = tsdp_header_K.prototype.Parse(tsk_ragel_parser_get_string(n, j, x)))) { s.add_header(m) } } break; case 8: if ((t = tsdp_header_M.prototype.Parse(tsk_ragel_parser_get_string(n, j, x)))) { s.add_header(t) } break; case 9: if ((m = tsdp_header_O.prototype.Parse(tsk_ragel_parser_get_string(n, j, x)))) { s.add_header(m) } break; case 10: if ((m = tsdp_header_P.prototype.Parse(tsk_ragel_parser_get_string(n, j, x)))) { s.add_header(m) } break; case 11: if ((m = tsdp_header_R.prototype.Parse(tsk_ragel_parser_get_string(n, j, x)))) { if (k) { k.ao_hdr_R.push(m) } else { s.add_header(m) } } break; case 12: if ((m = tsdp_header_S.prototype.Parse(tsk_ragel_parser_get_string(n, j, x)))) { s.add_header(m) } break; case 13: if ((k = tsdp_header_T.prototype.Parse(tsk_ragel_parser_get_string(n, j, x)))) { s.add_header(k); k = null } break; case 14: if ((m = tsdp_header_U.prototype.Parse(tsk_ragel_parser_get_string(n, j, x)))) { s.add_header(m) } break; case 15: if ((m = tsdp_header_V.prototype.Parse(tsk_ragel_parser_get_string(n, j, x)))) { s.add_header(m) } break; case 16: if ((m = tsdp_header_Z.prototype.Parse(tsk_ragel_parser_get_string(n, j, x)))) { s.add_header(m) } break } } } if (_trigger_goto) { continue } } if (q <= r) { if (e == 0) { q = v; continue } j += 1; if (j != y) { q = h; continue } } if (q <= w) {} if (q <= v) { break } } if (e < 34) { tsk_utils_log_error("Failed to parse sdp message: " + n); return null } return s }; var tsip_action_type_common_e = { ACCEPT: 1000, CANCEL: 1001, HANGUP: 1002, REJECT: 1002, SHUTDOWN: 1003 }; var tsip_action_type_e = { NONE: -1, CONFIG: 0, DTMF_SEND: 1, MUTE: 2, REGISTER: 10, UNREGISTER: tsip_action_type_common_e.HANGUP, SUBSCRIBE: 20, UNSUBSCRIBE: tsip_action_type_common_e.HANGUP, MESSAGE: 30, INFO: 40, PUBLISH: 50, UNPUBLISH: tsip_action_type_common_e.HANGUP, OPTIONS: 60, INVITE: 70, HOLD: 71, RESUME: 72, ECT: 73, ECT_ACCEPT: 74, ECT_REJECT: 75, ECT_NOTIFY: 76, LARGE_MESSAGE: 77, ACCEPT: tsip_action_type_common_e.ACCEPT, CANCEL: tsip_action_type_common_e.CANCEL, HANGUP: tsip_action_type_common_e.HANGUP, REJECT: tsip_action_type_common_e.REJECT, SHUTDOWN: tsip_action_type_common_e.SHUTDOWN }; function tsip_action(a) { this.e_type = a; this.ao_headers = new Array(); this.o_content = null; this.line_resp = {}; this.line_resp.i_code = 0; this.line_resp.s_phrase = null; this.media = {}; this.media.e_type = tmedia_type_e.NONE; this.media.ao_params = new Array(); this.dtmf = {}; this.dtmf.i_volume = -1; this.dtmf.i_event = -1; this.ect = {}; this.ect.s_to = null; this.mute = {}; this.mute.b_muted = false; this.mute.s_media = null } tsip_action.prototype.set_line_resp = function(a, b) { this.line_resp.i_code = a; this.line_resp.s_phrase = b }; tsip_action.prototype.set_content = function(a) { this.o_content = a }; tsip_action.prototype.get_content = function() { return this.o_content }; tsip_action.prototype.add_headers = function() { for (var a = 0; a < arguments.length; ++a) { if (arguments[a]) { this.ao_headers.push(arguments[a]) } } }; var tsip_event_type_e = { NONE: -1, INVITE: 0, MESSAGE: 1, INFO: 2, OPTIONS: 3, PUBLISH: 4, REGISTER: 5, SUBSCRIBE: 6, DIALOG: 20, STACK: 21 }; var tsip_event_code_e = { DIALOG_TRANSPORT_ERROR: 702, DIALOG_GLOBAL_ERROR: 703, DIALOG_MESSAGE_ERROR: 704, DIALOG_WEBRTC_ERROR: 705, DIALOG_REQUEST_INCOMING: 800, DIALOG_REQUEST_OUTGOING: 802, DIALOG_REQUEST_CANCELLED: 803, DIALOG_REQUEST_SENT: 804, DIALOG_MEDIA_ADDED: 805, DIALOG_MEDIA_REMOVED: 806, DIALOG_MEDIA_LOCAL_REQUESTED: 807, DIALOG_MEDIA_LOCAL_ACCEPTED: 808, DIALOG_MEDIA_LOCAL_REFUSED: 809, DIALOG_CONNECTING: 900, DIALOG_CONNECTED: 901, DIALOG_TERMINATING: 902, DIALOG_TERMINATED: 903, DIALOG_BFCP_INFO: 904, STACK_STARTING: 950, STACK_STARTED: 951, STACK_STOPPING: 952, STACK_STOPPED: 953, STACK_FAILED_TO_START: 954, STACK_FAILED_TO_STOP: 955 }; function tsip_event(e, a, d, c, b) { this.init(e, a, d, c, b) } tsip_event.prototype.init = function(e, a, d, c, b) { this.o_session = e; this.o_usr_data = null; this.i_code = a; this.s_phrase = d; this.o_message = c; this.e_type = b; return 0 }; tsip_event.prototype.get_session = function() { return this.o_session }; tsip_event.prototype.get_message = function() { return this.o_message }; tsip_event.prototype.get_code = function() { return this.i_code }; tsip_event.prototype.get_phrase = function() { return this.s_phrase }; tsip_event.prototype.set_usr_data = function(a) { this.o_usr_data = a }; tsip_event.prototype.is_type_session = function() { switch (this.e_type) { case tsip_event_type_e.INVITE: case tsip_event_type_e.MESSAGE: case tsip_event_type_e.INFO: case tsip_event_type_e.OPTIONS: case tsip_event_type_e.PUBLISH: case tsip_event_type_e.REGISTER: case tsip_event_type_e.SUBSCRIBE: case tsip_event_type_e.DIALOG: return true } return false }; tsip_event.prototype.is_type_stack = function() { return (this.e_type == tsip_event_type_e.STACK) }; tsip_event.prototype.signal = function() { var a = this; if (this.o_session.on_event && this.is_type_session()) { setTimeout(function() { a.o_session.on_event(a) }, 1) } switch (this.e_type) { case tsip_event_type_e.DIALOG: if (a.o_session.o_stack.on_event_dialog) { setTimeout(function() { a.o_session.o_stack.on_event_dialog(a) }, 1) } break; case tsip_event_type_e.STACK: if (a.o_session.o_stack.on_event_stack) { setTimeout(function() { a.o_session.o_stack.on_event_stack(a) }, 1) } case tsip_event_type_e.INVITE: if (a.o_session.o_stack.on_event_invite) { setTimeout(function() { a.o_session.o_stack.on_event_invite(a) }, 1) } break; case tsip_event_type_e.MESSAGE: if (a.o_session.o_stack.on_event_message) { setTimeout(function() { a.o_session.o_stack.on_event_message(a) }, 1) } break; case tsip_event_type_e.PUBLISH: if (a.o_session.o_stack.on_event_publish) { setTimeout(function() { a.o_session.o_stack.on_event_publish(a) }, 1) } break; case tsip_event_type_e.SUBSCRIBE: if (a.o_session.o_stack.on_event_subscribe) { setTimeout(function() { a.o_session.o_stack.on_event_subscribe(a) }, 1) } break } return 0 }; tsip_event.prototype.Signal = function(b, f, a, d, c) { if (!f || !f.o_stack) { tsk_utils_log_error("Invalid argument"); return -1 } var e = new tsip_event(f, a, d, c, b); return e.signal() }; tsip_response.prototype = Object.create(tsip_message.prototype); tsip_request.prototype = Object.create(tsip_message.prototype); tsip_message.prototype.__s_version_10 = "SIP/1.0"; tsip_message.prototype.__s_version_20 = "SIP/2.0"; tsip_message.prototype.__s_version_default = tsip_message.prototype.__s_version_20; var tsip_message_type_e = { UNKNOWN: 0, REQUEST: 1, RESPONSE: 2 }; var tsip_request_type_e = { NONE: { i_id: -1, s_name: "NONE" }, ACK: { i_id: 0, s_name: "ACK" }, BYE: { i_id: 1, s_name: "BYE" }, CANCEL: { i_id: 2, s_name: "CANCEL" }, INVITE: { i_id: 3, s_name: "INVITE" }, OPTIONS: { i_id: 4, s_name: "OPTIONS" }, REGISTER: { i_id: 5, s_name: "REGISTER" }, SUBSCRIBE: { i_id: 6, s_name: "SUBSCRIBE" }, NOTIFY: { i_id: 7, s_name: "NOTIFY" }, REFER: { i_id: 8, s_name: "REFER" }, INFO: { i_id: 9, s_name: "INFO" }, UPDATE: { i_id: 10, s_name: "UPDATE" }, MESSAGE: { i_id: 11, s_name: "MESSAGE" }, PUBLISH: { i_id: 12, s_name: "PUBLISH" }, PRACK: { i_id: 13, s_name: "PRACK" } }; function tsip_message(a) { this.s_version = tsip_message.prototype.__s_version_default; this.e_type = a; this.line = { request: {}, response: {} }; this.o_hdr_firstVia = null; this.o_hdr_From = null; this.o_hdr_To = null; this.o_hdr_Contact = null; this.o_hdr_Call_ID = null; this.o_hdr_CSeq = null; this.o_hdr_Expires = null; this.o_hdr_Content_Type = null; this.o_hdr_Content_Length = null; this.o_content = null; this.ao_headers = new Array(); this.s_sigcomp_id = null; this.o_socket = null; this.o_remote_addr = null; this.b_update = false } function tsip_response(b, d, c) { if (!d || !c) { tsk_utils_log_error("Invalid argument"); return null } tsip_message.call(this, tsip_message_type_e.RESPONSE); this.line.response.i_status_code = b; this.line.response.s_reason_phrase = d; this.o_socket = c.o_socket; this.o_remote_addr = c.o_remote_addr; this.o_hdr_From = c.o_hdr_From; this.o_hdr_Call_ID = c.o_hdr_Call_ID; this.o_hdr_CSeq = c.o_hdr_CSeq; this.o_hdr_firstVia = c.o_hdr_firstVia; if (this.o_hdr_firstVia) { var f = 1; var a; while ((a = c.get_header_at(tsip_header_type_e.Via, f++))) { this.add_header(a) } } var f = 0; var e; while ((e = c.get_header_at(tsip_header_type_e.Record_Route, f++))) { this.add_header(e) } this.o_hdr_To = c.o_hdr_To; this.add_header(new tsip_header_Content_Length(0)) } function tsip_request(e, c, b, a, d, f) { if (!e || !c || !d) { tsk_utils_log_error("Invalid argument"); return null } tsip_message.call(this, tsip_message_type_e.REQUEST); this.line.request.s_method = e; this.line.request.o_uri = c; this.line.request.e_type = tsip_message.prototype.GetRequestType(e); this.add_headers(new tsip_header_CSeq(f, e), new tsip_header_Call_ID(d), new tsip_header_Max_Forwards(TSIP_HEADER_MAX_FORWARDS_DEFAULT), new tsip_header_Content_Length(0)); if (a) { this.add_headers(new tsip_header_To(a, null)) } if (b) { this.add_headers(new tsip_header_From(b, null)) } } tsip_message.prototype.add_header = function(b, a) { if (!b) { tsk_utils_log_error("Invalid argument"); return -1 } switch (b.e_type) { case tsip_header_type_e.Via: if (!this.o_hdr_firstVia) { this.o_hdr_firstVia = b; return 0 } break; case tsip_header_type_e.From: if (!this.o_hdr_From) { this.o_hdr_From = b; return 0 } break; case tsip_header_type_e.To: if (!this.o_hdr_To) { this.o_hdr_To = b; return 0 } break; case tsip_header_type_e.Contact: if (!this.o_hdr_Contact) { this.o_hdr_Contact = b; return 0 } break; case tsip_header_type_e.Call_ID: if (!this.o_hdr_Call_ID) { this.o_hdr_Call_ID = b; return 0 } break; case tsip_header_type_e.CSeq: if (!this.o_hdr_CSeq) { this.o_hdr_CSeq = b; return 0 } break; case tsip_header_type_e.Expires: if (!this.o_hdr_Expires) { this.o_hdr_Expires = b; return 0 } break; case tsip_header_type_e.Content_Type: if (!this.o_hdr_Content_Type) { this.o_hdr_Content_Type = b; return 0 } break; case tsip_header_type_e.Content_Length: if (!this.o_hdr_Content_Length) { this.o_hdr_Content_Length = b; return 0 } break } if (a) { this.ao_headers.unshift(b) } else { this.ao_headers.push(b) } return 0 }; tsip_message.prototype.add_headers = function() { for (var a = 0; a < arguments.length; ++a) { if (arguments[a]) { this.add_header(arguments[a]) } } return 0 }; tsip_message.prototype.get_header_at = function(d, c) { var a = 0; switch (d) { case tsip_header_type_e.Via: if (c == 0) { return this.o_hdr_firstVia }++a; break; case tsip_header_type_e.From: if (c == 0) { return this.o_hdr_From }++a; break; case tsip_header_type_e.To: if (c == 0) { return this.o_hdr_To }++a; break; case tsip_header_type_e.Contact: if (c == 0) { return this.o_hdr_Contact }++a; break; case tsip_header_type_e.Call_ID: if (c == 0) { return this.o_hdr_Call_ID }++a; break; case tsip_header_type_e.CSeq: if (c == 0) { return this.o_hdr_CSeq }++a; break; case tsip_header_type_e.Expires: if (c == 0) { return this.o_hdr_Expires }++a; break; case tsip_header_type_e.Content_Type: if (c == 0) { return this.o_hdr_Content_Type }++a; break; case tsip_header_type_e.Content_Length: if (c == 0) { return this.o_hdr_Content_Length }++a; break } for (var b = 0; b < this.ao_headers.length; ++b) { if (this.ao_headers[b].e_type == d) { if (a++ >= c) { return this.ao_headers[b] } } } return null }; tsip_message.prototype.get_header = function(a) { return this.get_header_at(a, 0) }; tsip_message.prototype.get_response_code = function() { return this.is_response() ? this.line.response.i_status_code : 0 }; tsip_message.prototype.get_response_phrase = function() { return this.is_response() ? this.line.response.s_reason_phrase : null }; tsip_message.prototype.is_allowed = function(b) { if (!b) { tsk_utils_log_error("Invalid argument"); return false } var a; var c = 0; while ((a = this.get_header_at(tsip_header_type_e.Allow, c++))) { if (a.has_value(b)) { return true } } return false }; tsip_message.prototype.is_supported = function(a) { if (!a) { tsk_utils_log_error("Invalid argument"); return false } var b; var c = 0; while ((b = this.get_header_at(tsip_header_type_e.Supported, c++))) { if (b.has_value(a)) { return true } } return false }; tsip_message.prototype.is_required = function(a) { if (!a) { tsk_utils_log_error("Invalid argument"); return false } var b; var c = 0; while ((b = this.get_header_at(tsip_header_type_e.Require, c++))) { if (b.has_value(a)) { return true } } return false }; tsip_message.prototype.get_expires = function() { if (this.o_hdr_Expires) { return this.o_hdr_Expires.i_value } if (this.o_hdr_Contact) { return this.o_hdr_Contact.i_expires } return -1 }; tsip_message.prototype.has_content = function() { return this.get_content_length() > 0 && this.o_content }; tsip_message.prototype.get_content_length = function() { return this.o_hdr_Content_Length ? this.o_hdr_Content_Length.i_value : 0 }; tsip_message.prototype.get_content_type = function() { return (this.o_hdr_Content_Type) ? this.o_hdr_Content_Type.s_type : null }; tsip_message.prototype.get_content = function() { return this.o_content }; tsip_message.prototype.get_content_as_string = function() { if (this.o_content) { if (this.o_content instanceof Array) { return tsk_buff_u8b2utf8(this.o_content) } } return this.o_content ? this.o_content.toString() : null }; tsip_message.prototype.add_content = function(b, c, a) { if (c) { this.o_hdr_Content_Type = new tsip_header_Content_Type(c) } if (b && typeof a == "undefined") { if (b instanceof String || typeof b == "string") { a = unescape(encodeURIComponent(b)).length } else { if (b.byteLength) { a = b.byteLength } else { if (b.length) { a = b.length } else { tsk_utils_log_error("cannot stat content-length"); a = 0 } } } } this.o_hdr_Content_Length = new tsip_header_Content_Length(a); this.o_content = b }; tsip_message.prototype.toString = function() { var b = null; if (this.e_type == tsip_message_type_e.REQUEST) { b = tsk_string_format("{0} {1} {2}\r\n", this.line.request.s_method, tsip_uri_tostring(this.line.request.o_uri, true, false), this.s_version) } else { b = tsk_string_format("{0} {1} {2}\r\n", this.s_version, this.line.response.i_status_code, this.line.response.s_reason_phrase) } if (this.o_hdr_firstVia) { b += this.o_hdr_firstVia.tostring_full() } if (this.o_hdr_From) { b += this.o_hdr_From.tostring_full() } if (this.o_hdr_To) { b += this.o_hdr_To.tostring_full() } if (this.o_hdr_Contact) { b += this.o_hdr_Contact.tostring_full() } if (this.o_hdr_Call_ID) { b += this.o_hdr_Call_ID.tostring_full() } if (this.o_hdr_CSeq) { b += this.o_hdr_CSeq.tostring_full() } if (this.o_hdr_Expires) { b += this.o_hdr_Expires.tostring_full() } if (this.o_hdr_Content_Type) { b += this.o_hdr_Content_Type.tostring_full() } if (this.o_hdr_Content_Length) { b += this.o_hdr_Content_Length.tostring_full() } for (var a = 0; a < this.ao_headers.length; ++a) { b += this.ao_headers[a].tostring_full() } b += "\r\n"; if (this.has_content()) { b += this.get_content_as_string() } return b }; tsip_message.prototype.is_request = function() { return this.e_type == tsip_message_type_e.REQUEST }; tsip_message.prototype.is_response = function() { return this.e_type == tsip_message_type_e.RESPONSE }; tsip_message.prototype.is_req_type = function(a) { return this.is_request() && this.line.request.e_type == a }; tsip_message.prototype.is_ack = function() { return this.is_req_type(tsip_request_type_e.ACK) }; tsip_message.prototype.is_bye = function() { return this.is_req_type(tsip_request_type_e.BYE) }; tsip_message.prototype.is_cancel = function() { return this.is_req_type(tsip_request_type_e.CANCEL) }; tsip_message.prototype.is_invite = function() { return this.is_req_type(tsip_request_type_e.INVITE) }; tsip_message.prototype.is_options = function() { return this.is_req_type(tsip_request_type_e.OPTIONS) }; tsip_message.prototype.is_register = function() { return this.is_req_type(tsip_request_type_e.REGISTER) }; tsip_message.prototype.is_subscribe = function() { return this.is_req_type(tsip_request_type_e.SUBSCRIBE) }; tsip_message.prototype.is_notify = function() { return this.is_req_type(tsip_request_type_e.NOTIFY) }; tsip_message.prototype.is_update = function() { return this.is_req_type(tsip_request_type_e.UPDATE) }; tsip_message.prototype.is_message = function() { return this.is_req_type(tsip_request_type_e.MESSAGE) }; tsip_message.prototype.is_publish = function() { return this.is_req_type(tsip_request_type_e.PUBLISH) }; tsip_message.prototype.is_prack = function() { return this.is_req_type(tsip_request_type_e.PRACK) }; tsip_message.prototype.is_refer = function() { return this.is_req_type(tsip_request_type_e.REFER) }; tsip_message.prototype.is_info = function() { return this.is_req_type(tsip_request_type_e.INFO) }; tsip_message.prototype.is_response_to = function(a) { return this.is_response() && this.o_hdr_CSeq && this.o_hdr_CSeq.e_req_type == a }; tsip_message.prototype.is_response_to_ack = function() { return this.is_response_to(tsip_request_type_e.ACK) }; tsip_message.prototype.is_response_to_bye = function() { return this.is_response_to(tsip_request_type_e.BYE) }; tsip_message.prototype.is_response_to_cancel = function() { return this.is_response_to(tsip_request_type_e.CANCEL) }; tsip_message.prototype.is_response_to_invite = function() { return this.is_response_to(tsip_request_type_e.INVITE) }; tsip_message.prototype.is_response_to_options = function() { return this.is_response_to(tsip_request_type_e.OPTIONS) }; tsip_message.prototype.is_response_to_register = function() { return this.is_response_to(tsip_request_type_e.REGISTER) }; tsip_message.prototype.is_response_to_subscribe = function() { return this.is_response_to(tsip_request_type_e.SUBSCRIBE) }; tsip_message.prototype.is_response_to_notify = function() { return this.is_response_to(tsip_request_type_e.NOTIFY) }; tsip_message.prototype.is_response_to_update = function() { return this.is_response_to(tsip_request_type_e.UPDATE) }; tsip_message.prototype.is_response_to_message = function() { return this.is_response_to(tsip_request_type_e.MESSAGE) }; tsip_message.prototype.is_response_to_publish = function() { return this.is_response_to(tsip_request_type_e.PUBLISH) }; tsip_message.prototype.is_response_to_prack = function() { return this.is_response_to(tsip_request_type_e.PRACK) }; tsip_message.prototype.is_response_to_refer = function() { return this.is_response_to(tsip_request_type_e.REFER) }; tsip_message.prototype.is_response_to_info = function() { return this.is_response_to(tsip_request_type_e.INFO) }; tsip_message.prototype.is_response_nxx = function(a) { return this.is_response() && ((a * 100) <= this.get_response_code() && this.get_response_code() <= ((a * 100) + 99)) }; tsip_message.prototype.is_response_xxx = function(a) { return this.is_response() && (this.get_response_code() == a) }; tsip_message.prototype.is_1xx = function() { return this.is_response_nxx(1) }; tsip_message.prototype.is_2xx = function() { return this.is_response_nxx(2) }; tsip_message.prototype.is_3xx = function() { return this.is_response_nxx(3) }; tsip_message.prototype.is_4xx = function() { return this.is_response_nxx(4) }; tsip_message.prototype.is_5xx = function() { return this.is_response_nxx(5) }; tsip_message.prototype.is_6xx = function() { return this.is_response_nxx(6) }; tsip_message.prototype.is_23456 = function() { return this.is_response() && (200 <= this.get_response_code() && this.get_response_code() <= 699) }; tsip_message.prototype.is_3456 = function() { return this.is_response() && (300 <= this.get_response_code() && this.get_response_code() <= 699) }; tsip_message.prototype.GetRequestType = function(b) { if (b) { var a = b.toUpperCase(); if ((a == tsip_request_type_e.ACK.s_name)) { return tsip_request_type_e.ACK } else { if ((a == tsip_request_type_e.BYE.s_name)) { return tsip_request_type_e.BYE } else { if ((a == tsip_request_type_e.CANCEL.s_name)) { return tsip_request_type_e.CANCEL } else { if ((a == tsip_request_type_e.INVITE.s_name)) { return tsip_request_type_e.INVITE } else { if ((a == tsip_request_type_e.OPTIONS.s_name)) { return tsip_request_type_e.OPTIONS } else { if ((a == tsip_request_type_e.REGISTER.s_name)) { return tsip_request_type_e.REGISTER } else { if ((a == tsip_request_type_e.SUBSCRIBE.s_name)) { return tsip_request_type_e.SUBSCRIBE } else { if ((a == tsip_request_type_e.NOTIFY.s_name)) { return tsip_request_type_e.NOTIFY } else { if ((a == tsip_request_type_e.REFER.s_name)) { return tsip_request_type_e.REFER } else { if ((a == tsip_request_type_e.INFO.s_name)) { return tsip_request_type_e.INFO } else { if ((a == tsip_request_type_e.UPDATE.s_name)) { return tsip_request_type_e.UPDATE } else { if ((a == tsip_request_type_e.MESSAGE.s_name)) { return tsip_request_type_e.MESSAGE } else { if ((a == tsip_request_type_e.PUBLISH.s_name)) { return tsip_request_type_e.PUBLISH } else { if ((a == tsip_request_type_e.PRACK.s_name)) { return tsip_request_type_e.PRACK } } } } } } } } } } } } } } } return tsip_request_type_e.NONE }; if (!window.__b_release_mode) { tsip_api_add_js_scripts("head", "src/tinySIP/src/parsers/tsip_parser_message.js") } function prev_not_comma(a, b) { return (a.i_pe <= b) || (a.o_data[b - 1] != ",") } _tsip_machine_parser_message_actions = [0, 1, 0, 1, 1, 1, 2, 1, 3, 1, 4, 1, 5, 1, 6, 1, 7, 2, 0, 5, 2, 6, 0]; _tsip_machine_parser_message_key_offsets = [0, 0, 16, 31, 35, 47, 50, 52, 55, 57, 59, 61, 62, 64, 67, 69, 72, 73, 88, 89, 106, 109, 114, 117, 121, 142, 146, 147, 149, 166, 183, 197, 199, 202, 204, 207, 209, 211, 213, 214, 230, 246, 252, 258, 260, 281, 284, 288]; _tsip_machine_parser_message_trans_keys = [33, 37, 39, 83, 115, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 32, 33, 37, 39, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 65, 90, 97, 122, 9, 32, 43, 58, 45, 46, 48, 57, 65, 90, 97, 122, 9, 32, 58, 0, 65535, 32, 0, 65535, 83, 115, 73, 105, 80, 112, 47, 48, 57, 46, 48, 57, 48, 57, 13, 48, 57, 10, 13, 33, 37, 39, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 10, 9, 32, 33, 37, 39, 58, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 58, 9, 13, 32, 0, 65535, 13, 0, 65535, 10, 13, 0, 65535, 13, 33, 37, 39, 44, 47, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 10, 13, 0, 65535, 10, 9, 32, 32, 33, 37, 39, 73, 105, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 32, 33, 37, 39, 80, 112, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 32, 33, 37, 39, 47, 126, 42, 43, 45, 57, 65, 90, 95, 122, 48, 57, 46, 48, 57, 48, 57, 32, 48, 57, 48, 57, 48, 57, 48, 57, 32, 9, 13, 37, 61, 95, 126, 32, 33, 36, 59, 63, 90, 97, 122, 128, 255, 9, 13, 37, 61, 95, 126, 32, 33, 36, 59, 63, 90, 97, 122, 128, 255, 48, 57, 65, 70, 97, 102, 48, 57, 65, 70, 97, 102, 0, 65535, 13, 33, 37, 39, 44, 47, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 13, 0, 65535, 10, 13, 0, 65535, 10, 13, 0, 65535, 0]; _tsip_machine_parser_message_single_lengths = [0, 6, 5, 0, 4, 3, 0, 1, 2, 2, 2, 1, 0, 1, 0, 1, 1, 5, 1, 7, 3, 3, 1, 2, 7, 2, 1, 2, 7, 7, 6, 0, 1, 0, 1, 0, 0, 0, 1, 6, 6, 0, 0, 0, 7, 1, 2, 2]; _tsip_machine_parser_message_range_lengths = [0, 5, 5, 2, 4, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 5, 0, 5, 0, 1, 1, 1, 7, 1, 0, 0, 5, 5, 4, 1, 1, 1, 1, 1, 1, 1, 0, 5, 5, 3, 3, 1, 7, 1, 1, 1]; _tsip_machine_parser_message_index_offsets = [0, 0, 12, 23, 26, 35, 39, 41, 44, 47, 50, 53, 55, 57, 60, 62, 65, 67, 78, 80, 93, 97, 102, 105, 109, 124, 128, 130, 133, 146, 159, 170, 172, 175, 177, 180, 182, 184, 186, 188, 200, 212, 216, 220, 222, 237, 240, 244]; _tsip_machine_parser_message_indicies = [0, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0, 1, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 5, 5, 1, 6, 6, 7, 8, 7, 7, 7, 7, 1, 6, 6, 8, 1, 9, 1, 10, 9, 1, 11, 11, 1, 12, 12, 1, 13, 13, 1, 14, 1, 15, 1, 16, 15, 1, 17, 1, 18, 17, 1, 19, 1, 20, 21, 21, 21, 21, 21, 21, 21, 21, 21, 1, 22, 1, 23, 23, 24, 24, 24, 25, 24, 24, 24, 24, 24, 24, 1, 23, 23, 25, 1, 25, 27, 25, 26, 1, 28, 26, 1, 29, 28, 26, 1, 30, 31, 31, 31, 26, 26, 31, 26, 31, 26, 31, 26, 31, 26, 1, 32, 28, 26, 1, 33, 1, 26, 26, 1, 3, 4, 4, 4, 34, 34, 4, 4, 4, 4, 4, 4, 1, 3, 4, 4, 4, 35, 35, 4, 4, 4, 4, 4, 4, 1, 3, 4, 4, 4, 36, 4, 4, 4, 4, 4, 1, 37, 1, 38, 37, 1, 39, 1, 40, 39, 1, 41, 1, 42, 1, 43, 1, 44, 1, 45, 46, 47, 45, 45, 45, 45, 45, 45, 45, 45, 1, 48, 49, 50, 48, 48, 48, 48, 48, 48, 48, 48, 1, 51, 51, 51, 1, 48, 48, 48, 1, 52, 1, 54, 55, 55, 55, 53, 53, 55, 53, 55, 53, 55, 53, 55, 53, 1, 56, 53, 1, 57, 56, 53, 1, 32, 56, 53, 1, 0]; _tsip_machine_parser_message_trans_targs = [2, 0, 28, 3, 2, 4, 5, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 43, 20, 19, 21, 22, 26, 23, 24, 25, 22, 44, 27, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 16, 41, 40, 16, 41, 42, 43, 45, 47, 45, 46, 44]; _tsip_machine_parser_message_trans_actions = [1, 0, 1, 3, 0, 1, 0, 0, 0, 0, 5, 1, 0, 0, 0, 0, 0, 0, 7, 0, 0, 1, 15, 0, 0, 0, 0, 0, 0, 0, 13, 20, 15, 0, 0, 0, 0, 0, 0, 0, 7, 1, 0, 0, 9, 1, 17, 1, 0, 11, 0, 0, 0, 0, 13, 20, 0, 0]; tsip_machine_parser_message_start = 1; tsip_machine_parser_message_first_final = 43; tsip_machine_parser_message_error = 0; tsip_machine_parser_message_en_main = 1; function tsip_message_parser_init(a) { var b = 0; b = tsip_machine_parser_message_start; a.i_cs = b } function tsip_message_parser_execute(v, t, f) { var e = v.i_cs; var m = v.i_p; var x = v.i_pe; var j = v.i_eof; var y = v.o_data; var g, o, b, d, c, s, n; var q, k, a, r, w; var u; g = o = b = s = n = null; q = 0; k = 10; a = 15; r = 20; w = 30; u = 40; while (true) { _trigger_goto = false; if (q <= 0) { if (m == x) { q = w; continue } if (e == 0) { q = u; continue } } if (q <= k) { b = _tsip_machine_parser_message_key_offsets[e]; o = _tsip_machine_parser_message_index_offsets[e]; g = _tsip_machine_parser_message_single_lengths[e]; _break_match = false; do { if (g > 0) { _lower = b; _upper = b + g - 1; while (true) { if (_upper < _lower) { break } _mid = _lower + ((_upper - _lower) >> 1); if (y[m] < _tsip_machine_parser_message_trans_keys[_mid]) { _upper = _mid - 1 } else { if (y[m] > _tsip_machine_parser_message_trans_keys[_mid]) { _lower = _mid + 1 } else { o += (_mid - b); _break_match = true; break } } } if (_break_match) { break } b += g; o += g } g = _tsip_machine_parser_message_range_lengths[e]; if (g > 0) { _lower = b; _upper = b + (g << 1) - 2; while (true) { if (_upper < _lower) { break } _mid = _lower + (((_upper - _lower) >> 1) & ~1); if (y[m] < _tsip_machine_parser_message_trans_keys[_mid]) { _upper = _mid - 2 } else { if (y[m] > _tsip_machine_parser_message_trans_keys[_mid + 1]) { _lower = _mid + 2 } else { o += ((_mid - b) >> 1); _break_match = true; break } } } if (_break_match) { break } o += g } } while (false); o = _tsip_machine_parser_message_indicies[o]; e = _tsip_machine_parser_message_trans_targs[o]; if (_tsip_machine_parser_message_trans_actions[o] != 0) { s = _tsip_machine_parser_message_trans_actions[o]; n = _tsip_machine_parser_message_actions[s]; s += 1; while (n > 0) { n -= 1; s += 1; switch (_tsip_machine_parser_message_actions[s - 1]) { case 0: v.i_tag_start = m; break; case 1: v.i_tag_end = m; if (t.e_type == tsip_message_type_e.UNKNOWN) { t.e_type = tsip_message_type_e.REQUEST; if (!t.line.request.s_method) { t.line.request.s_method = tsk_ragel_parser_get_string(v.s_data, m, v.i_tag_start); t.line.request.e_type = tsip_message.prototype.GetRequestType(t.line.request.s_method) } } else { v.cs = tsip_machine_parser_message_error } break; case 2: v.i_tag_end = m; if (!t.line.request.o_uri) { var h = tsk_ragel_parser_get_string(v.s_data, m, v.i_tag_start); t.line.request.o_uri = tsip_uri.prototype.Parse(h) } break; case 3: v.i_tag_end = m; t.s_version = tsk_ragel_parser_get_string(v.s_data, m, v.i_tag_start); break; case 4: v.i_tag_end = m; if (t.e_type == tsip_message_type_e.UNKNOWN) { t.e_type = tsip_message_type_e.RESPONSE; var l = tsk_ragel_parser_get_string(v.s_data, m, v.i_tag_start); t.line.response.i_status_code = parseInt(l) } else { v.i_cs = tsip_machine_parser_message_error } break; case 5: v.i_tag_end = m; if (!t.line.response.s_reason_phrase) { t.line.response.s_reason_phrase = tsk_ragel_parser_get_string(v.s_data, m, v.i_tag_start) } break; case 6: v.i_tag_end = m; tsip_header_parse(v, t); break; case 7: v.i_cs = e; v.i_p = m; v.i_pe = x; v.i_eof = j; tsip_message_parser_eoh(v, t, f); e = v.i_cs; m = v.i_p; x = v.i_pe; j = v.i_eof; break } } } if (_trigger_goto) { continue } } if (q <= r) { if (e == 0) { q = u; continue } m += 1; if (m != x) { q = k; continue } } if (q <= w) {} if (q <= u) { break } } v.i_cs = e; v.i_p = m; v.i_pe = x; v.i_eof = j } function tsip_message_parser_eoh(b, h, a) { if (h && a) { var g = h.get_content_length(); if ((b.i_p + g) < b.i_pe && !h.o_content) { var e = b.i_p + 1; var f = (e + g); h.o_content = new Array((f - e)); for (var d = e, c = 0; d < f; ++d, ++c) { h.o_content[c] = b.o_data[d] } b.i_p += g } else { b.i_p = (b.i_pe - 1) } } } tsip_message.prototype.Parse = function(b, a) { var c = null; if (!b || !b.o_data) { return null } c = new tsip_message(tsip_message_type_e.UNKNOWN); tsip_message_parser_init(b); tsip_message_parser_execute(b, c, a); if (b.i_cs < 43) { tsk_utils_log_error("Failed to parse message: " + b.s_data); return null } return c }; tsip_session.prototype.__i_expires_default = 1800000; tsip_session.prototype.__i_session_id = 0; tsip_session.prototype.__i_session_id_invalid = -1; tsip_session.prototype.on_event = null; var tsip_session_param_type_e = { HEADER: 0, CAPS: 1, USR_DATA: 2, TO_STR: 3, from_STR: 3, TO_URI: 4, FROM_URI: 5, NO_CONTACT: 6, EXPIRES: 7, SILENT_HANGUP: 8, SIGCOMP_ID: 9, PARENT_ID: 10, BANDWIDTH: 20, VIDEO_SIZE: 21, SCREENCAST_WINDOWID: 22, INITIAL_MSG: 50, MEDIA: 100 }; function tsip_session(a) { if (!a) { tsk_utils_log_error("Invalid argument"); return null } this.i_id = ++tsip_session.prototype.__i_session_id; this.i_id_parent = tsip_session.prototype.__i_session_id_invalid; this.b_server = false; this.o_stack = a; this.o_usr_data = null; this.ao_caps = new Array(); this.ao_headers = new Array(); this.o_uri_from = a.identity.o_uri_impu; this.o_uri_to = null; this.i_expires = tsip_session.prototype.__i_expires_default; this.b_silent_hangup = false; this.b_no_contact = false; this.media = {}; this.media.e_type = tmedia_type_e.NONE; this.media.b_100rel = false; this.media.o_bandwidth = a.media.o_bandwidth; this.media.o_video_size = a.media.o_video_size; this.media.screencast = {}; this.media.screencast.d_window_id = 0; this.media.timers = {}; this.media.timers.s_refresher = null; this.media.timers.i_timeout = 0; this.media.qos = {}; this.media.qos.e_type = tmedia_qos_stype_e.NONE; this.media.qos.e_strength = tmedia_qos_strength_e.NONE; this.media.msrp = {}; this.media.msrp.fn_callback = null } tsip_session.prototype.get_id = function() { return this.i_id }; tsip_session.prototype.set = function() { return this.__set(arguments) }; tsip_session.prototype.get_stack = function() { return this.o_stack }; tsip_session.prototype.is_connected = function() { var a; if ((a = this.o_stack.o_layer_dialog.find_by_ss(this))) { return (a.e_state == tsip_dialog_state_e.ESTABLISHED) } return false }; tsip_session.prototype.__set = function(c) { var d; for (var a = 0; a < c.length; ++a) { d = c[a]; if (!d) { continue } switch (d.e_type) { case tsip_session_param_type_e.HEADER: this.ao_headers.push(new tsip_header_Dummy(d.ao_values[0], d.ao_values[1])); break; case tsip_session_param_type_e.CAPS: this.ao_caps.push(tsk_param_create(d.ao_values[0], d.ao_values[1])); break; case tsip_session_param_type_e.USR_DATA: this.o_usr_data = d.ao_values[0]; break; case tsip_session_param_type_e.TO_STR: this.o_uri_to = tsip_uri_make_valid(d.ao_values[0], this.o_stack.network.o_uri_realm.s_host); break; case tsip_session_param_type_e.FROM_STR: this.o_uri_from = tsip_uri_make_valid(d.ao_values[0], this.o_stack.network.o_uri_realm.s_host); break; case tsip_session_param_type_e.TO_URI: if (!d.ao_values[0] || d.ao_values[0] instanceof tsip_uri) { this.o_uri_to = d.ao_values[0] } else { tsk_utils_log_error("Not a valid uri object") } break; case tsip_session_param_type_e.FROM_URI: if (!d.ao_values[0] || d.ao_values[0] instanceof tsip_uri) { this.o_uri_from = d.ao_values[0] } else { tsk_utils_log_error("Not a valid uri object") } break; case tsip_session_param_type_e.NO_CONTACT: this.b_no_contact = d.ao_values[0]; break; case tsip_session_param_type_e.EXPIRES: this.i_expires = (d.ao_values[0] * 1000); break; case tsip_session_param_type_e.SILENT_HANGUP: break; case tsip_session_param_type_e.SIGCOMP_ID: break; case tsip_session_param_type_e.PARENT_ID: break; case tsip_session_param_type_e.BANDWIDTH: this.media.o_bandwidth = d.ao_values[0]; break; case tsip_session_param_type_e.VIDEO_SIZE: this.media.o_video_size = d.ao_values[0]; break; case tsip_session_param_type_e.SCREENCAST_WINDOWID: this.media.screencast.d_window_id = parseFloat(d.ao_values[0].toString()); break; case tsip_session_param_type_e.INITIAL_MSG: var b; if ((b = d.ao_values[0])) { if (b.o_hdr_From && b.o_hdr_From.o_uri) { this.o_uri_from = b.o_hdr_From.o_uri.clone(false, false) } if (b.o_hdr_To && b.o_hdr_To.o_uri) { this.o_uri_to = b.o_hdr_To.o_uri.clone(false, false) } this.b_server = true } break } } }; tsip_session.prototype.SetHeader = function(b, a) { return tsip_session.prototype.SetAny(tsip_session_param_type_e.HEADER, b, a) }; tsip_session.prototype.SetExpires = function(a) { return tsip_session.prototype.SetAny(tsip_session_param_type_e.EXPIRES, a) }; tsip_session.prototype.SetUsrData = function(a) { return tsip_session.prototype.SetAny(tsip_session_param_type_e.USR_DATA, a) }; tsip_session.prototype.SetCaps = function(b, a) { return tsip_session.prototype.SetAny(tsip_session_param_type_e.CAPS, b, a) }; tsip_session.prototype.SetToStr = function(a) { return tsip_session.prototype.SetAny(tsip_session_param_type_e.TO_STR, a) }; tsip_session.prototype.SetToUri = function(a) { return tsip_session.prototype.SetAny(tsip_session_param_type_e.TO_URI, a) }; tsip_session.prototype.SetFromStr = function(a) { return tsip_session.prototype.SetAny(tsip_session_param_type_e.FROM_STR, a) }; tsip_session.prototype.SetInitialMessage = function(a) { return tsip_session.prototype.SetAny(tsip_session_param_type_e.INITIAL_MSG, a) }; tsip_session.prototype.SetBandwidth = function(a) { return tsip_session.prototype.SetAny(tsip_session_param_type_e.BANDWIDTH, a) }; tsip_session.prototype.SetVideoSize = function(a) { return tsip_session.prototype.SetAny(tsip_session_param_type_e.VIDEO_SIZE, a) }; tsip_session.prototype.SetScreencastWindowID = function(a) { return tsip_session.prototype.SetAny(tsip_session_param_type_e.SCREENCAST_WINDOWID, a) }; tsip_session.prototype.SetInitialMessage = function(a) { return tsip_session.prototype.SetAny(tsip_session_param_type_e.INITIAL_MSG, a) }; tsip_session.prototype.SetAny = function(a) { var b = new Object(); b.e_type = a; b.ao_values = Array.prototype.slice.call(arguments, 1); return b }; if (!window.__b_release_mode) { tsip_api_add_js_scripts("head", "src/tinySIP/src/api/tsip_api_common.js", "src/tinySIP/src/api/tsip_api_info.js", "src/tinySIP/src/api/tsip_api_invite.js", "src/tinySIP/src/api/tsip_api_message.js", "src/tinySIP/src/api/tsip_api_options.js", "src/tinySIP/src/api/tsip_api_publish.js", "src/tinySIP/src/api/tsip_api_register.js", "src/tinySIP/src/api/tsip_api_subscribe.js") } tsip_session.prototype.__action_handle = function(a) { var b = -1; if (this.o_stack && a) { var c; if ((c = this.o_stack.o_layer_dialog.find_by_ss(this))) { switch (a.e_type) { case tsip_action_type_e.HANGUP: b = c.hangup(a); break; default: b = c.fsm_act(a.e_type, null, a); break } } else { tsk_utils_log_error("Failed to find dialog with this opid [" + this.i_id + "]") } } else { tsk_utils_log_error("Invalid argument") } return b }; tsip_session.prototype.__action_any = function(b) { if (!this.o_stack) { tsk_utils_log_error("Invalid stack"); return -1 } if (this.o_stack.e_state != tsip_transport_state_e.STARTED) { tsk_utils_log_error("Stack not started"); return -2 } var a = new tsip_action(b); return this.__action_handle(a) }; tsip_session.prototype.reject = function() { return this.__action_any(tsip_action_type_e.REJECT) }; tsip_session.prototype.hangup = function() { return this.__action_any(tsip_action_type_e.HANGUP) }; tsip_session.prototype.accept = function() { return this.__action_any(tsip_action_type_e.ACCEPT) }; tsip_session.prototype.cancel = function() { return this.__action_any(tsip_action_type_e.CANCEL) }; tsip_event_info.prototype = Object.create(tsip_event.prototype); var tsip_event_info_type_e = { I_INFO: 0, AO_INFO: 1 }; function tsip_event_info(d, a, c, b, e) { tsip_event.call(this, d, a, c, b, tsip_event_type_e.INFO); this.e_type = e } tsip_session_invite.prototype = Object.create(tsip_session.prototype); tsip_event_invite.prototype = Object.create(tsip_event.prototype); tsip_session_invite.prototype.o_stream_local = null; tsip_session_invite.prototype.o_stream_remote = null; var tsip_event_invite_type_e = { I_NEW_CALL: 0, I_REQUEST: 100, I_AO_REQUEST: 101, O_ECT_TRYING: 200, O_ECT_ACCEPTED: 201, O_ECT_COMPLETED: 202, O_ECT_FAILED: 203, O_ECT_NOTIFY: 204, I_ECT_REQUESTED: 205, I_ECT_NEW_CALL: 206, I_ECT_COMPLETED: 207, I_ECT_FAILED: 208, I_ECT_NOTIFY: 209, M_BFCP_INFO: 300, M_EARLY_MEDIA: 400, M_UPDATING: 401, M_UPDATED: 402, M_STREAM_CONNECTING: 403, M_STREAM_CONNECTED: 404, M_STREAM_LOCAL_REQUESTED: 405, M_STREAM_LOCAL_ACCEPTED: 406, M_STREAM_LOCAL_REFUSED: 407, M_STREAM_LOCAL_ADDED: 408, M_STREAM_LOCAL_REMOVED: 409, M_STREAM_REMOTE_ADDED: 410, M_STREAM_REMOTE_REMOVED: 411, M_LOCAL_HOLD_OK: 500, M_LOCAL_HOLD_NOK: 501, M_LOCAL_RESUME_OK: 502, M_LOCAL_RESUME_NOK: 503, M_REMOTE_HOLD: 504, M_REMOTE_RESUME: 505 }; function tsip_session_invite(a) { tsip_session.call(this, a); this.__set(Array.prototype.slice.call(arguments, 1)); this.o_url_local = null; this.o_url_remote = null } function tsip_event_invite(e, a, d, b, c) { tsip_event.call(this, e, a, d, b, tsip_event_type_e.INVITE); this.e_invite_type = c } tsip_session_invite.prototype.get_url_local = function() { return this.o_url_local }; tsip_session_invite.prototype.get_stream_local = function() { return this.o_stream_local }; tsip_session_invite.prototype.get_url_remote = function() { return this.o_url_remote }; tsip_session_invite.prototype.get_stream_remote = function() { return this.o_stream_remote }; tsip_session_invite.prototype.__set_stream_local = function(a) { if (this.o_url_local) { window.nativeURL.revokeObjectURL(this.o_url_local) } this.o_stream_local = a; this.o_url_local = a ? window.nativeURL.createObjectURL(a) : undefined }; tsip_session_invite.prototype.__set_stream_remote = function(a) { if (this.o_url_remote) { window.nativeURL.revokeObjectURL(this.o_url_remote) } this.o_stream_remote = a; this.o_url_remote = this.o_stream_remote ? window.nativeURL.createObjectURL(this.o_stream_remote) : undefined }; tsip_session_invite.prototype.call = function(c) { if (this.o_stack.e_state != tsip_transport_state_e.STARTED) { tsk_utils_log_error("Stack not started"); return -2 } var d = -1; var b = new tsip_action(tsip_action_type_e.INVITE); if (b) { var a = false; b.media.e_type = c; var e = this.o_stack.o_layer_dialog.find_by_ss(this); if (!e) { a = true; e = this.o_stack.o_layer_dialog.dialog_new(tsip_dialog_type_e.INVITE, this) } if ((d = e.fsm_act(b.e_type, null, b)) == 0) { if (a) { this.media.e_type = c } } } return d }; tsip_session_invite.prototype.hold = function(b) { if (this.o_stack.e_state != tsip_transport_state_e.STARTED) { tsk_utils_log_error("Stack not started"); return -2 } var c = -1; var a = new tsip_action(tsip_action_type_e.HOLD); if (a) { a.media.e_type = b; c = this.__action_handle(a) } return c }; tsip_session_invite.prototype.resume = function(b) { if (this.o_stack.e_state != tsip_transport_state_e.STARTED) { tsk_utils_log_error("Stack not started"); return -2 } var c = -1; var a = new tsip_action(tsip_action_type_e.RESUME); if (a) { a.media.e_type = b; c = this.__action_handle(a) } return c }; tsip_session_invite.prototype.info = function(b, c) { if (this.o_stack.e_state != tsip_transport_state_e.STARTED) { tsk_utils_log_error("Stack not started"); return -2 } var d = -1; var a = new tsip_action(tsip_action_type_e.INFO); if (a) { if (c) { a.add_headers(new tsip_header_Content_Type(c)) } a.set_content(b); d = this.__action_handle(a) } return d }; tsip_session_invite.prototype.dtmf = function(b) { if (this.o_stack.e_state != tsip_transport_state_e.STARTED) { tsk_utils_log_error("Stack not started"); return -2 } if (!b) { tsk_utils_log_error("Invalid parameter"); return -1 } var a = new tsip_action(tsip_action_type_e.DTMF_SEND); if (a) { a.add_headers(new tsip_header_Content_Type("application/dtmf-relay")); a.set_content(b.toString()); return this.__action_handle(a) } return -3 }; tsip_session_invite.prototype.transfer = function(b) { if (!b) { tsk_utils_log_error("Invalid parameter"); return -1 } if (this.o_stack.e_state != tsip_transport_state_e.STARTED) { tsk_utils_log_error("Stack not started"); return -2 } var a = tsip_uri_make_valid(b, this.o_stack.network.o_uri_realm.s_host); if (!a) { tsk_utils_log_error("%s is not a valid SIP Uri", b); return -3 } var d = -1; var c = new tsip_action(tsip_action_type_e.ECT); if (c) { c.ect.s_to = tsip_uri_tostring(a, false, false); d = this.__action_handle(c) } return d }; tsip_session_invite.prototype.transfer_accept = function() { return this.__action_any(tsip_action_type_e.ECT_ACCEPT) }; tsip_session_invite.prototype.transfer_reject = function() { return this.__action_any(tsip_action_type_e.ECT_REJECT) }; tsip_session_invite.prototype.start_bfcp_share = function() { var a = this.media.e_type; switch (this.media.e_type) { case tmedia_type_e.AUDIO: a = tmedia_type_e.AUDIO_BFCPVIDEO; break; case tmedia_type_e.VIDEO: a = tmedia_type_e.VIDEO_BFCPVIDEO; break; default: a = tmedia_type_e.AUDIO_VIDEO_BFCPVIDEO; break } return this.call(a) }; tsip_session_invite.prototype.stop_bfcp_share = function() { var a = this.media.e_type; switch (this.media.e_type) { case tmedia_type_e.AUDIO_BFCPVIDEO: a = tmedia_type_e.AUDIO; break; case tmedia_type_e.VIDEO_BFCPVIDEO: a = tmedia_type_e.VIDEO; break; default: a = tmedia_type_e.AUDIO_VIDEO; break } return this.call(a) }; tsip_session_invite.prototype.set_mute = function(c, b) { var a = new tsip_action(tsip_action_type_e.MUTE); if (a) { a.mute.b_muted = b; a.mute.s_media = c; return this.__action_handle(a) } return -3 }; tsip_session_message.prototype = Object.create(tsip_session.prototype); var tsip_event_message_type_e = { I_MESSAGE: 0, AO_MESSAGE: 1 }; function tsip_event_message(d, a, c, b, e) { this.__proto__ = new tsip_event(d, a, c, b, tsip_event_type_e.MESSAGE); this.e_message_type = e } function tsip_session_message(a) { tsip_session.call(this, a); this.__set(Array.prototype.slice.call(arguments, 1)) } tsip_session_message.prototype.send = function(b, c) { if (!b) { tsk_utils_log_error("Invalid argument"); return -1 } if (this.o_stack.e_state != tsip_transport_state_e.STARTED) { tsk_utils_log_error("Stack not started"); return -2 } var d = -1; var a = new tsip_action(tsip_action_type_e.MESSAGE); if (a) { var e = this.o_stack.o_layer_dialog.dialog_new(tsip_dialog_type_e.MESSAGE, this); if (e) { a.set_content(b); if (c) { a.add_headers(new tsip_header_Content_Type(c)) } if ((d = e.fsm_act(a.e_type, null, a)) == 0) {} } } return d }; var tsip_event_options_type_e = { I_OPTIONS: 0, AO_OPTIONS: 1 }; function tsip_event_options(d, a, c, b, e) { this.__proto__ = new tsip_event(d, a, c, b, tsip_event_type_e.OPTIONS); this.e_type = e } tsip_session_publish.prototype = Object.create(tsip_session.prototype); tsip_event_publish.prototype = Object.create(tsip_event.prototype); var tsip_event_publish_type_e = { I_PUBLISH: 0, AO_PUBLISH: 1, I_UNPUBLISH: 10, AO_UNPUBLISH: 11 }; function tsip_event_publish(e, a, c, b, d) { tsip_event.call(this, e, a, c, b, tsip_event_type_e.PUBLISH); this.e_publish_type = d } function tsip_session_publish(a) { tsip_session.call(this, a); this.__set(Array.prototype.slice.call(arguments, 1)) } tsip_session_publish.prototype.publish = function(b, c) { if (this.o_stack.e_state != tsip_transport_state_e.STARTED) { tsk_utils_log_error("Stack not started"); return -2 } var d = -1; var a = new tsip_action(tsip_action_type_e.PUBLISH); if (a) { var e = this.o_stack.o_layer_dialog.find_by_ss(this); if (!e) { e = this.o_stack.o_layer_dialog.dialog_new(tsip_dialog_type_e.PUBLISH, this) } a.set_content(b); if (c) { a.add_headers(new tsip_header_Content_Type(c)) } d = e.fsm_act(a.e_type, null, a) } return d }; tsip_session_publish.prototype.unpublish = function() { return this.__action_any(tsip_action_type_e.UNPUBLISH) }; tsip_session_register.prototype = Object.create(tsip_session.prototype); tsip_event_register.prototype = Object.create(tsip_event.prototype); var tsip_event_register_type_e = { I_NEW_REGISTER: 0, I_REGISTER: 10, AO_REGISTER: 11, I_UNREGISTER: 20, AO_UNREGISTER: 21 }; function tsip_session_register(a) { tsip_session.call(this, a); this.__set(Array.prototype.slice.call(arguments, 1)) } function tsip_event_register(e, a, d, c, b) { tsip_event.call(this, e, a, d, c, tsip_event_type_e.REGISTER); this.e_register_type = b } tsip_session_register.prototype.register = function() { if (this.o_stack.e_state != tsip_transport_state_e.STARTED) { tsk_utils_log_error("Stack not started"); return -2 } var b = -1; var a = new tsip_action(tsip_action_type_e.REGISTER); if (a) { var c = this.o_stack.o_layer_dialog.find_by_ss(this); if (!c) { c = this.o_stack.o_layer_dialog.dialog_new(tsip_dialog_type_e.REGISTER, this) } b = c.fsm_act(a.e_type, null, a) } return b }; tsip_session_register.prototype.unregister = function() { return this.__action_any(tsip_action_type_e.UNREGISTER) }; tsip_session_subscribe.prototype = Object.create(tsip_session.prototype); tsip_event_subscribe.prototype = Object.create(tsip_event.prototype); var tsip_event_subscribe_type_e = { I_SUBSCRIBE: 0, AO_SUBSCRIBE: 1, I_UNSUBSRIBE: 10, AO_UNSUBSCRIBE: 11, I_NOTIFY: 20, AO_NOTIFY: 21 }; function tsip_event_subscribe(e, a, c, b, d) { tsip_event.call(this, e, a, c, b, tsip_event_type_e.SUBSCRIBE); this.e_subscribe_type = d } function tsip_session_subscribe(a) { tsip_session.call(this, a); this.__set(Array.prototype.slice.call(arguments, 1)) } tsip_session_subscribe.prototype.subscribe = function() { if (this.o_stack.e_state != tsip_transport_state_e.STARTED) { tsk_utils_log_error("Stack not started"); return -2 } var b = -1; var a = new tsip_action(tsip_action_type_e.SUBSCRIBE); if (a) { var c = this.o_stack.o_layer_dialog.find_by_ss(this); if (!c) { c = this.o_stack.o_layer_dialog.dialog_new(tsip_dialog_type_e.SUBSCRIBE, this) } b = c.fsm_act(a.e_type, null, a) } return b }; tsip_session_subscribe.prototype.unsubscribe = function() { return this.__action_any(tsip_action_type_e.UNSUBSCRIBE) }; tsip_stack.prototype.on_event_stack = null; tsip_stack.prototype.on_event_dialog = null; tsip_stack.prototype.on_event_invite = null; tsip_stack.prototype.on_event_message = null; tsip_stack.prototype.on_event_publish = null; tsip_stack.prototype.on_event_subscribe = null; var tsip_stack_param_type_e = { DISPLAY_NAME: 0, IMPU: 1, PREFERRED_ID: 2, IMPI: 3, PASSWORD: 4, SIGCOMP: 10, SIGCOMP_ADD_COMPARTMENT: 11, SIGCOMP_REMOVE_COMPARTMENT: 12, REALM: 20, LOCAL_IP: 21, LOCAL_PORT: 22, AOR: 23, DISCOVERY_NAPTR: 24, DISCOVERY_DHCP: 25, PROXY_CSCF: 26, DNSSERVER: 27, MODE_SERVER: 28, PROXY_OUTBOUND: 30, WEBSOCKET_SERVER_URL: 31, ICE_SERVERS: 32, ENABLE_RTCWEB_BREAKER: 33, ENABLE_CLICK2CALL: 34, ENABLE_SECURE_TRANSPORT: 35, EARLY_IMS: 40, SECAGREE_IPSEC: 41, SECAGREE_TLS: 42, AMF: 43, OPERATOR_ID: 44, TLS_CERTS: 45, IPSEC_PARAMS: 46, HEADER: 50, STUN_SERVER: 60, STUN_CRED: 61, CACHE_MEDIA_STREAM: 70, BANDWIDTH: 71, VIDEO_SIZE: 72, USERDATA: 80 }; var tsip_transport_state_e = { NONE: -1, STARTING: 0, STARTED: 1, STOPPING: 3, STOPPED: 4 }; function tsip_stack(c, b, e, f, g) { if (!c || !b || !e) { tsk_utils_log_error("Invalid argument"); return null } var d = tsip_uri.prototype.Parse(e); if (!d) { tsk_utils_log_error("'" + e + "' is not a valid IMPU Uri"); return null } if (tsk_string_index_of(c, c.length, "sip:") != 0 && tsk_string_index_of(c, c.length, "sips:") != 0) { c = tsk_string_format("sip:{0}", c) } var a = tsip_uri.prototype.Parse(c); if (!a) { tsk_utils_log_error("'" + c + "' is not a valid realm"); return null } this.e_state = tsip_transport_state_e.NONE; this.identity = {}; this.identity.s_display_name = d.s_user_name; this.identity.o_uri_impu = d; this.identity.o_uri_pref = null; this.identity.s_impi = b; this.identity.s_password = null; this.network = {}; this.network.o_transport = null; this.network.s_transport = "ws"; this.network.s_local_ip = null; this.network.i_local_port = 0; this.network.s_proxy_cscf_host = f; this.network.i_proxy_cscf_port = g; this.network.e_proxy_cscf_type = tsk_utils_have_webrtc4all() ? tsip_transport_type_e.UDP : tsip_transport_type_e.WS; this.network.o_uri_realm = a; this.network.s_proxy_outbound_host = null; this.network.i_proxy_outbound_port = 5060; this.network.e_proxy_outbound_type = this.network.e_proxy_cscf_type; this.network.s_websocket_server_url = null; this.network.ao_ice_servers = null; this.network.b_rtcweb_enabled = false; this.network.b_click2call_enabled = false; this.network.aor = {}; this.network.aor.s_ip = null; this.network.aor.i_port = 0; this.security = {}; this.security.b_earlyIMS = true; this.security.tls = {}; this.security.tls.s_ca = null; this.security.tls.s_pbk = null; this.security.tls.s_pvk = null; this.natt = {}; this.natt.stun = {}; this.natt.stun.s_ip = null; this.natt.stun.i_port = 0; this.natt.stun.s_login = null; this.natt.stun.s_pwd = null; this.media = {}; this.media.b_cache_stream = false; this.media.o_bandwidth = { audio: undefined, video: undefined }; this.media.o_video_size = { minWidth: undefined, minHeight: undefined, maxWidth: undefined, maxHeight: undefined }; this.o_timers = new tsip_timers(); this.ao_sessions = new Array(); this.ao_headers = new Array(); this.o_usr_data = null; this.ao_uri_paths = new Array(); this.ao_uri_service_routes = new Array(); this.ao_uri_associated_uris = new Array(); this.o_layer_dialog = new tsip_dialog_layer(this); this.o_layer_transac = new tsip_transac_layer(this); this.o_layer_transport = new tsip_transport_layer(this); this.__set(Array.prototype.slice.call(arguments, 5)) } tsip_stack.prototype.start = function() { if (this.e_state == tsip_transport_state_e.STARTED) { tsk_utils_log_warn("Already started"); return 0 } else { if (this.e_state == tsip_transport_state_e.STARTING) { this.stop() } } if (!this.network.s_proxy_cscf_host) { tsk_utils_log_error("'" + this.network.s_proxy_cscf_host + "' not valid as proxy host"); return -2 } tsk_utils_log_info("SIP stack start: proxy='" + this.network.s_proxy_cscf_host + ":" + this.network.i_proxy_cscf_port + "', realm='" + this.network.o_uri_realm + "', impi='" + this.identity.s_impi + "', impu='" + this.identity.o_uri_impu + "'"); this.network.o_transport = this.o_layer_transport.transport_new(this.network.e_proxy_cscf_type, this.network.s_proxy_cscf_host, this.network.i_proxy_cscf_port, "SIP Transport", __tsip_stack_transport_callback); if (!this.network.o_transport) { tsk_utils_log_error("Failed to create transport with type= " + this.network.e_proxy_cscf_type); return -2 } this.e_state = tsip_transport_state_e.STARTING; this.signal(tsip_event_code_e.STACK_STARTING, "Stack starting"); return this.network.o_transport.start() }; tsip_stack.prototype.stop = function(b) { var a = this; setTimeout(function() { switch (a.e_state) { case tsip_transport_state_e.STOPPED: case tsip_transport_state_e.STOPPING: case tsip_transport_state_e.NONE: return 0; default: break } if (typeof b == "undefined") { b = tsip_dialog.prototype.__i_timer_shutdown } var l = 0; var e = false; var f = false; var k; var d = (b << 1) / 3; var j = j = new Date(); for (var g = 0; g < a.o_layer_dialog.ao_dialogs.length; ++g) { if (a.o_layer_dialog.ao_dialogs[g].e_type == tsip_dialog_type_e.REGISTER) { ++l; continue } if ((k = a.o_layer_dialog.ao_dialogs[g].shutdown()) == 0) { e = true } } var m = function() { if (e) { do { if ((a.o_layer_dialog.ao_dialogs.length <= l)) { setTimeout(h, 1); return } if ((new Date() - j) >= d) { setTimeout(h, 1); return } } while (false) } setTimeout(m, 1) }; var h = function() { if (!f) { if (l > 0) { l = 0; for (var n = 0; n < a.o_layer_dialog.ao_dialogs.length; ++n) { if (a.o_layer_dialog.ao_dialogs[n].e_type == tsip_dialog_type_e.REGISTER) { if ((k = a.o_layer_dialog.ao_dialogs[n].shutdown()) == 0) { ++l } } } } f = true } do { if (a.o_layer_dialog.ao_dialogs.length == 0 || (new Date() - j) >= b) { setTimeout(c, 1); return } } while (false); setTimeout(h, 1) }; var c = function() { if (a.o_layer_transport) { a.o_layer_transport.stop() } a.signal(tsip_event_code_e.STACK_STOPPED, "Stack stopped") }; if (e) { m() } else { if (l) { h() } else { c() } } }, 1); return 0 }; tsip_stack.prototype.set = function() { return this.__set(arguments) }; tsip_stack.prototype.SetDisplayName = function(a) { return tsip_stack.prototype.SetAny(tsip_stack_param_type_e.DISPLAY_NAME, a) }; tsip_stack.prototype.SetPassword = function(a) { return tsip_stack.prototype.SetAny(tsip_stack_param_type_e.PASSWORD, a) }; tsip_stack.prototype.SetProxyCSCF = function(c, b, a) { return tsip_stack.prototype.SetAny(tsip_stack_param_type_e.PROXY_CSCF, c, b, a) }; tsip_stack.prototype.SetProxyOutBound = function(c, b, a) { return tsip_stack.prototype.SetAny(tsip_stack_param_type_e.PROXY_OUTBOUND, c, b, a) }; tsip_stack.prototype.SetProxyOutBoundUrl = function(a) { if (!a) { return tsip_stack.prototype.SetProxyOutBound(null, 5060, tsip_transport_type_e.UDP) } var c = tsk_string_parse_url(a); if (!c || c.length < 3) { tsk_utils_log_error(a + " not valid as outbound proxy url"); return null } var b; switch (c[0]) { case "udp": default: b = tsip_transport_type_e.UDP; break; case "tcp": b = tsip_transport_type_e.TCP; break; case "tls": b = tsip_transport_type_e.TLS; break; case "dtls": b = tsip_transport_type_e.DTLS; break; case "sctp": b = tsip_transport_type_e.SCTP; break; case "ws": b = tsip_transport_type_e.WS; break; case "wss": b = tsip_transport_type_e.WSS; break } return tsip_stack.prototype.SetProxyOutBound(c[1], c[2], b) }; tsip_stack.prototype.SetWebsocketServerUrl = function(a) { return tsip_stack.prototype.SetAny(tsip_stack_param_type_e.WEBSOCKET_SERVER_URL, a) }; tsip_stack.prototype.SetIceServers = function(a) { return tsip_stack.prototype.SetAny(tsip_stack_param_type_e.ICE_SERVERS, a) }; tsip_stack.prototype.SetMediaStreamCacheEnabled = function(a) { return tsip_stack.prototype.SetAny(tsip_stack_param_type_e.CACHE_MEDIA_STREAM, a) }; tsip_stack.prototype.SetBandwidth = function(a) { return tsip_stack.prototype.SetAny(tsip_stack_param_type_e.BANDWIDTH, a) }; tsip_stack.prototype.SetVideoSize = function(a) { return tsip_stack.prototype.SetAny(tsip_stack_param_type_e.VIDEO_SIZE, a) }; tsip_stack.prototype.SetRTCWebBreakerEnabled = function(a) { return tsip_stack.prototype.SetAny(tsip_stack_param_type_e.ENABLE_RTCWEB_BREAKER, a) }; tsip_stack.prototype.SetClick2CallEnabled = function(a) { return tsip_stack.prototype.SetAny(tsip_stack_param_type_e.ENABLE_CLICK2CALL, a) }; tsip_stack.prototype.SetSecureTransportEnabled = function(a) { return tsip_stack.prototype.SetAny(tsip_stack_param_type_e.ENABLE_SECURE_TRANSPORT, a) }; tsip_stack.prototype.SetEarlyIMSEnabled = function(a) { return tsip_stack.prototype.SetAny(tsip_stack_param_type_e.EARLY_IMS, a) }; tsip_stack.prototype.SetHeader = function(b, a) { return tsip_stack.prototype.SetAny(tsip_stack_param_type_e.HEADER, b, a) }; tsip_stack.prototype.__set = function(ao_params) { var o_curr; for (var i = 0; i < ao_params.length; ++i) { o_curr = ao_params[i]; if (!o_curr) { continue } switch (o_curr.e_type) { case tsip_stack_param_type_e.DISPLAY_NAME: this.identity.s_display_name = o_curr.ao_values[0]; if (this.identity.o_uri_impu) { this.identity.o_uri_impu.s_display_name = this.identity.s_display_name } break; case tsip_stack_param_type_e.PASSWORD: this.identity.s_password = o_curr.ao_values[0]; break; case tsip_stack_param_type_e.PROXY_CSCF: this.network.s_proxy_cscf_host = o_curr.ao_values[0]; this.network.i_proxy_cscf_port = o_curr.ao_values[1]; this.network.e_proxy_cscf_type = o_curr.ao_values[2]; break; case tsip_stack_param_type_e.PROXY_OUTBOUND: this.network.s_proxy_outbound_host = o_curr.ao_values[0]; this.network.i_proxy_outbound_port = o_curr.ao_values[1]; this.network.e_proxy_outbound_type = o_curr.ao_values[2]; break; case tsip_stack_param_type_e.WEBSOCKET_SERVER_URL: this.network.s_websocket_server_url = o_curr.ao_values[0]; if (this.network.s_websocket_server_url) { if (this.network.s_websocket_server_url.indexOf("wss://") == 0) { this.network.e_proxy_cscf_type = tsip_transport_type_e.WSS } else { if (this.network.s_websocket_server_url.indexOf("ws://") == 0) { this.network.e_proxy_cscf_type = tsip_transport_type_e.WS } } } break; case tsip_stack_param_type_e.ICE_SERVERS: if (!tsk_string_is_null_or_empty(o_curr.ao_values[0])) { try { if (o_curr.ao_values[0] instanceof String || typeof o_curr.ao_values[0] == "string") { eval("this.network.ao_ice_servers = " + o_curr.ao_values[0] + ";") } else { if (o_curr.ao_values[0] instanceof Array || typeof o_curr.ao_values[0] == "array") { this.network.ao_ice_servers = o_curr.ao_values[0] } else { tsk_utils_log_warn(o_curr.ao_values[0] + " not valid as ICE servers") } } } catch (e) { tsk_utils_log_error("Failed to set ICE servers:" + e) } } break; case tsip_stack_param_type_e.ENABLE_RTCWEB_BREAKER: this.network.b_rtcweb_enabled = !!o_curr.ao_values[0]; break; case tsip_stack_param_type_e.ENABLE_CLICK2CALL: this.network.b_click2call_enabled = !!o_curr.ao_values[0]; break; case tsip_stack_param_type_e.ENABLE_SECURE_TRANSPORT: if (o_curr.ao_values[0] && this.network.e_proxy_cscf_type == tsip_transport_type_e.WS) { this.network.e_proxy_cscf_type = tsip_transport_type_e.WSS } break; case tsip_stack_param_type_e.EARLY_IMS: this.security.b_earlyIMS = !!o_curr.ao_values[0]; break; case tsip_stack_param_type_e.CACHE_MEDIA_STREAM: this.media.b_cache_stream = !!o_curr.ao_values[0]; break; case tsip_stack_param_type_e.BANDWIDTH: this.media.o_bandwidth = o_curr.ao_values[0]; break; case tsip_stack_param_type_e.VIDEO_SIZE: this.media.o_video_size = o_curr.ao_values[0]; break; case tsip_stack_param_type_e.HEADER: if (o_curr.ao_values[1]) { this.ao_headers.push(new tsip_header_Dummy(o_curr.ao_values[0], o_curr.ao_values[1])) } else { var i_index = tsip_header.prototype.IndexOfByName(this.ao_headers, o_curr.ao_values[0]); if (i_index != -1) { this.ao_headers.splice(i_index, 1) } } break } } return 0 }; tsip_stack.prototype.__get_contact_uri = function(c) { for (var b = 0; b < this.o_layer_transport.ao_transports.length; ++b) { var a = this.o_layer_transport.ao_transports[b].get_uri(false); if (a) { a.s_user_name = this.identity.o_uri_impu.s_user_name; return a } } return null }; tsip_stack.prototype.__get_proxy_outbound_uri_string = function() { if (this.network.s_proxy_outbound_host) { var a; switch (this.network.e_proxy_outbound_type) { case tsip_transport_type_e.TCP: a = "tcp"; break; case tsip_transport_type_e.TLS: a = "tls"; break; case tsip_transport_type_e.SCTP: a = "sctp"; break; case tsip_transport_type_e.DTLS: a = "dtls"; break; case tsip_transport_type_e.WS: a = "ws"; break; case tsip_transport_type_e.WSS: a = "wss"; break; case tsip_transport_type_e.UDP: default: a = "udp"; break } return tsk_string_format("", this.network.s_proxy_outbound_host, this.network.i_proxy_outbound_port, a) } return null }; tsip_stack.prototype.SetAny = function(a) { var b = new Object(); b.e_type = a; b.ao_values = Array.prototype.slice.call(arguments, 1); return b }; tsip_stack.prototype.signal = function(a, c) { if (this.on_event_stack) { var b = this.on_event_stack; var d = new tsip_event(null, a, c, null, tsip_event_type_e.STACK); d.o_stack = this; setTimeout(function() { b(d) }, 1) } return 0 }; function __tsip_stack_transport_callback(b) { var a = b.o_transport.o_stack; switch (b.e_type) { case tsip_transport_event_type_e.STARTED: a.e_state = tsip_transport_state_e.STARTED; a.signal(tsip_event_code_e.STACK_STARTED, "Stack started"); break; case tsip_transport_event_type_e.STOPPED: if (a.e_state == tsip_transport_state_e.STARTING) { a.signal(tsip_event_code_e.STACK_FAILED_TO_START, "Failed to connet to the server") } else { a.signal(tsip_event_code_e.STACK_STOPPED, "Stack stopped") } a.e_state = tsip_transport_state_e.STOPPED; a.o_layer_transport.transport_remove(b.o_transport); break; case tsip_transport_event_type_e.ERROR: break } return 0 } tsip_timers.prototype.TIMER_T1 = 500; tsip_timers.prototype.TIMER_T4 = 5000; var tsip_timers_e = { T1: tsip_timers.prototype.TIMER_T1, T2: 4000, T4: tsip_timers.prototype.TIMER_T4, A: tsip_timers.prototype.TIMER_T1, B: 64 * tsip_timers.prototype.TIMER_T1, C: 5 * 60000, D: 50000, E: tsip_timers.prototype.TIMER_T1, F: 64 * tsip_timers.prototype.TIMER_T1, G: tsip_timers.prototype.TIMER_T1, H: 64 * tsip_timers.prototype.TIMER_T1, I: tsip_timers.prototype.TIMER_T4, J: 64 * tsip_timers.prototype.TIMER_T1, K: tsip_timers.prototype.TIMER_T4, L: 64 * tsip_timers.prototype.TIMER_T1, M: 64 * tsip_timers.prototype.TIMER_T1 }; function tsip_timers() { this.T1 = tsip_timers_e.T1; this.T2 = tsip_timers_e.T2; this.T4 = tsip_timers_e.T4; this.A = tsip_timers_e.A; this.B = tsip_timers_e.B; this.C = tsip_timers_e.C; this.D = tsip_timers_e.D; this.E = tsip_timers_e.E; this.F = tsip_timers_e.F; this.G = tsip_timers_e.G; this.H = tsip_timers_e.H; this.I = tsip_timers_e.I; this.J = tsip_timers_e.J; this.K = tsip_timers_e.K; this.L = tsip_timers_e.L; this.M = tsip_timers_e.M } tsip_timers.prototype.getA = function() { return this.A }; tsip_timers.prototype.getB = function() { return this.B }; tsip_timers.prototype.getC = function() { return this.C }; tsip_timers.prototype.getD = function() { return this.D }; tsip_timers.prototype.getE = function() { return this.E }; tsip_timers.prototype.getF = function() { return this.F }; tsip_timers.prototype.getG = function() { return this.G }; tsip_timers.prototype.getH = function() { return this.H }; tsip_timers.prototype.getI = function() { return this.I }; tsip_timers.prototype.getJ = function() { return this.J }; tsip_timers.prototype.getK = function() { return this.K }; tsip_timers.prototype.getL = function() { return this.L }; tsip_timers.prototype.getM = function() { return this.M }; tsip_timers.prototype.getT1 = function() { return this.T1 }; tsip_timers.prototype.getT2 = function() { return this.T2 }; tsip_timers.prototype.getT4 = function() { return this.T4 }; tsip_timers.prototype.setT1 = function(a) { this.T1 = a; this.A = this.E = this.G = this.T1; this.B = this.F = this.H = this.J = (this.T1 * 64) }; tsip_timers.prototype.setT2 = function(a) { this.T2 = a }; tsip_timers.prototype.setT4 = function(a) { this.T4 = a; this.I = this.K = this.T4 }; tsip_timers.prototype.setA = function(a) { this.A = a }; tsip_timers.prototype.setB = function(a) { if (this) { this.B = a } }; tsip_timers.prototype.setC = function(a) { this.C = a }; tsip_timers.prototype.setD = function(a) { this.D = a }; tsip_timers.prototype.setE = function(a) { this.E = a }; tsip_timers.prototype.setF = function(a) { this.F = a }; tsip_timers.prototype.setG = function(a) { this.G = a }; function tsip_timers_setH(a) { this.H = a } tsip_timers.prototype.setI = function(a) { this.I = a }; tsip_timers.prototype.setJ = function(a) { this.J = a }; tsip_timers.prototype.setK = function(a) { this.K = a }; tsip_timers.prototype.setL = function(a) { this.L = a }; tsip_timers.prototype.setM = function(a) { this.M = a }; var tsip_uri_type_e = { unknown: { i_id: 0, s_scheme: "unknown" }, sip: { i_id: 1, s_scheme: "sip" }, sips: { i_id: 2, s_scheme: "sips" }, tel: { i_id: 3, s_scheme: "tel" } }; var tsip_host_type_e = { unknown: { i_id: 0, s_name: "unknown" }, hostname: { i_id: 1, s_name: "hostname" }, ipv4: { i_id: 2, s_name: "ipv4" }, ipv6: { i_id: 3, s_name: "ipv6" } }; function tsip_uri(a) { this.e_type = a; this.s_scheme = null; this.s_host = null; this.e_host_type = tsip_host_type_e.unknown; this.i_port = 0; this.s_user_name = null; this.s_password = null; this.s_display_name = null; this.ao_params = new Array(); this.toString = function() { return tsip_uri_tostring(this, true, true) } } tsip_uri.prototype.tostring = function(a, b) { return tsip_uri_tostring(this, a, b) }; tsip_uri.prototype.compare = function(a) { var b = tsip_uri_compare(this, a) }; tsip_uri.prototype.clone = function(b, c) { var a = tsip_uri_tostring(this, b, c); if (a) { return tsip_uri.prototype.Parse(a) } return null }; function tsip_uri_make_valid(b, a) { if (!b || !a) { tsk_utils_log_error("Invalid argument"); return null } if (tsk_string_index_of(b, b.length, '"') == 0 || tsk_string_index_of(b, b.length, "<") == 0) { return tsip_uri.prototype.Parse(b) } var c = (tsk_string_index_of(b, b.length, "tel:") == 0); if (tsk_string_index_of(b, b.length, "sip:") != 0 && tsk_string_index_of(b, b.length, "sips:") != 0 && !c) { b = "sip:" + b } if (!c && tsk_string_index_of(b, b.length, "@") == -1) { b += "@" + a } return tsip_uri.prototype.Parse(b) } function __tsip_uri_tostring(a, c) { var b = tsk_string_format("{0}:{1}{2}{3}{4}{5}{6}{7}{8}{9}", a.s_scheme ? a.s_scheme : "sip", a.s_user_name ? a.s_user_name : "", a.s_password ? ":" : "", a.s_password ? a.s_password : "", a.s_host ? (a.s_user_name ? "@" : "") : "", a.e_host_type == tsip_host_type_e.ipv6 ? "[" : "", a.s_host ? a.s_host : "", a.e_host_type == tsip_host_type_e.ipv6 ? "]" : "", a.i_port > 0 ? ":" : "", a.i_port > 0 ? a.i_port : ""); if (b && c && a.ao_params.length > 0) { b += tsk_string_format(";{0}", tsk_params_tostring(a.ao_params, ";")) } return b } function tsip_uri_tostring(a, c, d) { if (a) { if (d) { var b = ""; if (a.s_display_name) { b += tsk_string_format('"{0}"', a.s_display_name) } b += tsk_string_format("<{0}>", __tsip_uri_tostring(a, c)); return b } else { return __tsip_uri_tostring(a, c) } } else { tsk_utils_log_error("Invalid argument"); return null } } function tsip_uri_strcmp(c, a, d) { if (c && a) { var b = false; var e = false; if (tsk_string_contains(c, c.length, "%")) { b = true; c = decodeURIComponent(c) } if (tsk_string_contains(a, a.length, "%")) { e = true; a = decodeURIComponent(a) } return d ? c.localeCompare(a) : c.toLowerCase().localeCompare(a.toLowerCase()) } return -1 } function tsip_uri_strequals(b, a) { return (tsip_uri_strcmp(b, a, true) == 0) } function tsip_uri_striequals(b, a) { return (tsip_uri_strcmp(b, a, false) == 0) } function tsip_uri_compare_parameter(c, a, b) { var e = tsk_param_get_by_name(c.ao_params, b); var d = tsk_param_get_by_name(a.ao_params, b); if ((e || d) && ((e && !d) || (!e && d) || (!tsip_uri_striequals(e.s_value, d.s_value)))) { return -3 } return 0 } function tsip_uri_compare(c, a) { if (c && a) { var f; var e; var d; if (!tsk_string_equals(c.s_scheme, a.s_scheme) || !tsip_uri_strequals(c.s_user_name, a.s_user_name) || !tsip_uri_strequals(c.s_host, a.s_host) || !tsk_string_equals(c.s_password, a.s_password) || c.i_port != a.i_port) { return -2 } if ((!c.ao_params && !a.ao_params) || (c.ao_params.length == 0 && a.ao_params.length == 0)) { return 0 } if ((d = tsip_uri_compare_parameter(c, a, "transport")) != 0) { return d } if ((d = tsip_uri_compare_parameter(c, a, "ttl")) != 0) { return d } if ((d = tsip_uri_compare_parameter(c, a, "user")) != 0) { return d } if ((d = tsip_uri_compare_parameter(c, a, "method")) != 0) { return d } if ((d = tsip_uri_compare_parameter(c, a, "maddr")) != 0) { return d } for (var b = 0; b < c.ao_params.length; ++b) { f = c.ao_params[b]; if ((e = tsk_param_get_by_name(a.ao_params, f.s_name))) { if (!tsip_uri_striequals(f.s_value, e.s_value)) { return -4 } } } for (var b = 0; b < a.ao_params.length; ++b) { e = a.ao_params[b]; if ((f = tsk_param_get_by_name(c.ao_params, e.s_name))) { if (!tsip_uri_striequals(f.s_value, e.s_value)) { return -4 } } } return 0 } else { return (!c && !a) ? 0 : -1 } } if (!window.__b_release_mode) { tsip_api_add_js_scripts("head", "src/tinySIP/src/parsers/tsip_parser_uri.js") } _tsip_machine_parser_uri_actions = [0, 1, 0, 1, 5, 1, 7, 1, 9, 1, 11, 1, 12, 1, 13, 1, 14, 1, 17, 1, 18, 1, 20, 1, 21, 1, 22, 1, 23, 2, 1, 15, 2, 2, 15, 2, 4, 6, 2, 7, 10, 2, 7, 16, 2, 8, 10, 2, 9, 16, 2, 9, 19, 2, 13, 0, 2, 13, 6, 3, 0, 8, 10, 3, 13, 0, 6, 3, 13, 3, 0]; _tsip_machine_parser_uri_key_offsets = [0, 0, 7, 15, 22, 28, 34, 40, 53, 66, 72, 78, 80, 93, 99, 105, 118, 124, 130, 143, 156, 162, 168, 182, 196, 202, 208, 229, 231, 247, 262, 278, 292, 300, 306, 320, 336, 350, 366, 380, 388, 396, 404, 420, 436, 452, 468, 484, 500, 506, 508, 525, 540, 554, 568, 582, 592, 602, 613, 613, 622, 622, 632, 642, 651, 654, 669, 683, 698, 714, 730, 746, 750, 765, 782, 788, 795, 801, 808, 814, 821, 828, 831, 838, 841, 848, 851, 868, 885, 901, 917, 933, 949, 953, 967, 984, 1001, 1018, 1024, 1031, 1038, 1041, 1044]; _tsip_machine_parser_uri_trans_keys = [45, 48, 57, 65, 90, 97, 122, 45, 46, 48, 57, 65, 90, 97, 122, 45, 48, 57, 65, 90, 97, 122, 48, 57, 65, 90, 97, 122, 48, 57, 65, 70, 97, 102, 48, 57, 65, 70, 97, 102, 33, 37, 93, 95, 126, 36, 43, 45, 58, 65, 91, 97, 122, 33, 37, 93, 95, 126, 36, 43, 45, 58, 65, 91, 97, 122, 48, 57, 65, 70, 97, 102, 48, 57, 65, 70, 97, 102, 0, 65535, 33, 37, 93, 95, 126, 36, 43, 45, 58, 65, 91, 97, 122, 48, 57, 65, 70, 97, 102, 48, 57, 65, 70, 97, 102, 33, 37, 93, 95, 126, 36, 43, 45, 58, 65, 91, 97, 122, 48, 57, 65, 70, 97, 102, 48, 57, 65, 70, 97, 102, 33, 37, 59, 61, 63, 95, 126, 36, 57, 65, 90, 97, 122, 33, 37, 58, 61, 64, 95, 126, 36, 59, 63, 90, 97, 122, 48, 57, 65, 70, 97, 102, 48, 57, 65, 70, 97, 102, 33, 37, 61, 64, 95, 126, 36, 46, 48, 57, 65, 90, 97, 122, 33, 37, 61, 64, 95, 126, 36, 46, 48, 57, 65, 90, 97, 122, 48, 57, 65, 70, 97, 102, 48, 57, 65, 70, 97, 102, 58, 59, 83, 84, 91, 115, 116, 0, 47, 48, 57, 60, 64, 65, 90, 92, 96, 97, 122, 123, 65535, 0, 65535, 45, 46, 0, 47, 48, 57, 58, 64, 65, 90, 91, 96, 97, 122, 123, 65535, 45, 0, 47, 48, 57, 58, 64, 65, 90, 91, 96, 97, 122, 123, 65535, 45, 46, 0, 47, 48, 57, 58, 64, 65, 90, 91, 96, 97, 122, 123, 65535, 0, 47, 48, 57, 58, 64, 65, 90, 91, 96, 97, 122, 123, 65535, 45, 46, 48, 57, 65, 90, 97, 122, 48, 57, 65, 90, 97, 122, 0, 47, 48, 57, 58, 64, 65, 90, 91, 96, 97, 122, 123, 65535, 45, 46, 0, 47, 48, 57, 58, 64, 65, 90, 91, 96, 97, 122, 123, 65535, 0, 47, 48, 57, 58, 64, 65, 90, 91, 96, 97, 122, 123, 65535, 45, 46, 0, 47, 48, 57, 58, 64, 65, 90, 91, 96, 97, 122, 123, 65535, 0, 47, 48, 57, 58, 64, 65, 90, 91, 96, 97, 122, 123, 65535, 45, 46, 48, 57, 65, 90, 97, 122, 45, 46, 48, 57, 65, 90, 97, 122, 45, 46, 48, 57, 65, 90, 97, 122, 45, 46, 0, 47, 48, 57, 58, 64, 65, 90, 91, 96, 97, 122, 123, 65535, 45, 46, 0, 47, 48, 57, 58, 64, 65, 90, 91, 96, 97, 122, 123, 65535, 45, 46, 0, 47, 48, 57, 58, 64, 65, 90, 91, 96, 97, 122, 123, 65535, 45, 46, 0, 47, 48, 57, 58, 64, 65, 90, 91, 96, 97, 122, 123, 65535, 45, 46, 0, 47, 48, 57, 58, 64, 65, 90, 91, 96, 97, 122, 123, 65535, 45, 46, 0, 47, 48, 57, 58, 64, 65, 90, 91, 96, 97, 122, 123, 65535, 0, 47, 48, 57, 58, 65535, 48, 57, 33, 37, 44, 92, 94, 96, 126, 0, 35, 36, 58, 59, 64, 65, 122, 123, 65535, 33, 37, 59, 61, 93, 95, 126, 36, 43, 45, 58, 65, 91, 97, 122, 33, 37, 59, 93, 95, 126, 36, 43, 45, 58, 65, 91, 97, 122, 0, 47, 48, 57, 58, 64, 65, 70, 71, 96, 97, 102, 103, 65535, 0, 47, 48, 57, 58, 64, 65, 70, 71, 96, 97, 102, 103, 65535, 45, 46, 73, 105, 48, 57, 65, 90, 97, 122, 45, 46, 80, 112, 48, 57, 65, 90, 97, 122, 45, 46, 58, 83, 115, 48, 57, 65, 90, 97, 122, 45, 46, 58, 48, 57, 65, 90, 97, 122, 45, 46, 69, 101, 48, 57, 65, 90, 97, 122, 45, 46, 76, 108, 48, 57, 65, 90, 97, 122, 45, 46, 58, 48, 57, 65, 90, 97, 122, 59, 0, 65535, 33, 37, 59, 61, 93, 95, 126, 36, 43, 45, 58, 65, 91, 97, 122, 33, 37, 59, 93, 95, 126, 36, 43, 45, 58, 65, 91, 97, 122, 58, 0, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 65535, 58, 93, 0, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 65535, 58, 93, 0, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 65535, 58, 93, 0, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 65535, 58, 93, 0, 65535, 58, 0, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 65535, 46, 58, 93, 0, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 65535, 0, 47, 48, 57, 58, 65535, 46, 0, 47, 48, 57, 58, 65535, 0, 47, 48, 57, 58, 65535, 46, 0, 47, 48, 57, 58, 65535, 0, 47, 48, 57, 58, 65535, 93, 0, 47, 48, 57, 58, 65535, 93, 0, 47, 48, 57, 58, 65535, 93, 0, 65535, 46, 0, 47, 48, 57, 58, 65535, 46, 0, 65535, 46, 0, 47, 48, 57, 58, 65535, 46, 0, 65535, 46, 58, 93, 0, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 65535, 46, 58, 93, 0, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 65535, 58, 93, 0, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 65535, 58, 93, 0, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 65535, 58, 93, 0, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 65535, 58, 93, 0, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 65535, 58, 93, 0, 65535, 0, 47, 48, 57, 58, 64, 65, 70, 71, 96, 97, 102, 103, 65535, 46, 58, 93, 0, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 65535, 46, 58, 93, 0, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 65535, 46, 58, 93, 0, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 65535, 0, 47, 48, 57, 58, 65535, 46, 0, 47, 48, 57, 58, 65535, 46, 0, 47, 48, 57, 58, 65535, 46, 0, 65535, 58, 0, 65535, 0]; _tsip_machine_parser_uri_single_lengths = [0, 1, 2, 1, 0, 0, 0, 5, 5, 0, 0, 0, 5, 0, 0, 5, 0, 0, 7, 7, 0, 0, 6, 6, 0, 0, 7, 0, 2, 1, 2, 0, 2, 0, 0, 2, 0, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 7, 7, 6, 0, 0, 4, 4, 5, 0, 3, 0, 4, 4, 3, 1, 7, 6, 1, 2, 2, 2, 2, 1, 3, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 3, 3, 2, 2, 2, 2, 2, 0, 3, 3, 3, 0, 1, 1, 1, 1, 0]; _tsip_machine_parser_uri_range_lengths = [0, 3, 3, 3, 3, 3, 3, 4, 4, 3, 3, 1, 4, 3, 3, 4, 3, 3, 3, 3, 3, 3, 4, 4, 3, 3, 7, 1, 7, 7, 7, 7, 3, 3, 7, 7, 7, 7, 7, 3, 3, 3, 7, 7, 7, 7, 7, 7, 3, 1, 5, 4, 4, 7, 7, 3, 3, 3, 0, 3, 0, 3, 3, 3, 1, 4, 4, 7, 7, 7, 7, 1, 7, 7, 3, 3, 3, 3, 3, 3, 3, 1, 3, 1, 3, 1, 7, 7, 7, 7, 7, 7, 1, 7, 7, 7, 7, 3, 3, 3, 1, 1, 0]; _tsip_machine_parser_uri_index_offsets = [0, 0, 5, 11, 16, 20, 24, 28, 38, 48, 52, 56, 58, 68, 72, 76, 86, 90, 94, 105, 116, 120, 124, 135, 146, 150, 154, 169, 171, 181, 190, 200, 208, 214, 218, 226, 236, 244, 254, 262, 268, 274, 280, 290, 300, 310, 320, 330, 340, 344, 346, 359, 371, 382, 390, 398, 406, 414, 423, 424, 431, 432, 440, 448, 455, 458, 470, 481, 490, 500, 510, 520, 524, 533, 544, 548, 553, 557, 562, 566, 571, 576, 579, 584, 587, 592, 595, 606, 617, 627, 637, 647, 657, 661, 669, 680, 691, 702, 706, 711, 716, 719, 722]; _tsip_machine_parser_uri_indicies = [1, 2, 2, 2, 0, 3, 4, 5, 5, 5, 0, 3, 5, 5, 5, 0, 5, 2, 2, 0, 7, 7, 7, 6, 8, 8, 8, 6, 9, 10, 9, 9, 9, 9, 9, 9, 9, 6, 11, 12, 11, 11, 11, 11, 11, 11, 11, 6, 13, 13, 13, 6, 11, 11, 11, 6, 14, 0, 16, 17, 16, 16, 16, 16, 16, 16, 16, 15, 18, 18, 18, 15, 19, 19, 19, 15, 20, 21, 20, 20, 20, 20, 20, 20, 20, 15, 22, 22, 22, 15, 20, 20, 20, 15, 23, 25, 23, 23, 23, 23, 23, 23, 23, 23, 24, 26, 27, 28, 26, 29, 26, 26, 26, 26, 26, 24, 30, 30, 30, 24, 26, 26, 26, 24, 31, 32, 31, 33, 31, 31, 31, 31, 31, 31, 24, 34, 35, 34, 36, 34, 34, 34, 34, 34, 34, 24, 37, 37, 37, 24, 34, 34, 34, 24, 40, 41, 43, 44, 45, 43, 44, 38, 39, 38, 42, 38, 42, 38, 24, 38, 46, 47, 48, 38, 49, 38, 50, 38, 50, 38, 46, 47, 38, 50, 38, 50, 38, 50, 38, 46, 47, 51, 38, 50, 38, 50, 38, 50, 38, 46, 38, 50, 38, 2, 38, 2, 38, 46, 1, 53, 2, 2, 2, 52, 5, 2, 2, 52, 38, 54, 38, 2, 38, 2, 38, 46, 47, 55, 38, 56, 38, 50, 38, 50, 38, 46, 38, 57, 38, 2, 38, 2, 38, 46, 47, 58, 38, 59, 38, 50, 38, 50, 38, 46, 38, 60, 38, 2, 38, 2, 38, 46, 3, 4, 61, 5, 5, 52, 3, 4, 62, 5, 5, 52, 3, 4, 5, 5, 5, 52, 47, 58, 38, 63, 38, 50, 38, 50, 38, 46, 47, 58, 38, 50, 38, 50, 38, 50, 38, 46, 47, 55, 38, 64, 38, 50, 38, 50, 38, 46, 47, 55, 38, 50, 38, 50, 38, 50, 38, 46, 47, 48, 38, 65, 38, 50, 38, 50, 38, 46, 47, 48, 38, 50, 38, 50, 38, 50, 38, 46, 38, 66, 38, 46, 66, 67, 9, 68, 38, 38, 38, 38, 9, 38, 9, 38, 9, 38, 46, 8, 70, 71, 72, 8, 8, 8, 8, 8, 8, 8, 69, 11, 12, 71, 11, 11, 11, 11, 11, 11, 11, 69, 38, 73, 38, 73, 38, 73, 38, 46, 38, 8, 38, 8, 38, 8, 38, 46, 1, 53, 74, 74, 2, 2, 2, 52, 1, 53, 75, 75, 2, 2, 2, 52, 1, 53, 76, 77, 77, 2, 2, 2, 52, 78, 1, 53, 79, 2, 2, 2, 52, 80, 1, 53, 81, 81, 2, 2, 2, 52, 1, 53, 82, 82, 2, 2, 2, 52, 1, 53, 83, 2, 2, 2, 52, 86, 85, 84, 19, 88, 89, 90, 19, 19, 19, 19, 19, 19, 19, 87, 20, 21, 89, 20, 20, 20, 20, 20, 20, 20, 87, 92, 38, 91, 38, 91, 38, 91, 38, 46, 94, 95, 38, 93, 38, 93, 38, 93, 38, 46, 94, 95, 38, 96, 38, 96, 38, 96, 38, 46, 94, 95, 38, 97, 38, 97, 38, 97, 38, 46, 94, 95, 38, 46, 99, 38, 98, 38, 91, 38, 91, 38, 46, 100, 94, 95, 38, 101, 38, 93, 38, 93, 38, 46, 38, 102, 38, 46, 103, 38, 104, 38, 46, 38, 105, 38, 46, 106, 38, 107, 38, 46, 38, 108, 38, 46, 95, 38, 109, 38, 46, 95, 38, 110, 38, 46, 95, 38, 46, 106, 38, 111, 38, 46, 106, 38, 46, 103, 38, 112, 38, 46, 103, 38, 46, 100, 94, 95, 38, 113, 38, 96, 38, 96, 38, 46, 100, 94, 95, 38, 97, 38, 97, 38, 97, 38, 46, 115, 95, 38, 114, 38, 114, 38, 114, 38, 46, 117, 95, 38, 116, 38, 116, 38, 116, 38, 46, 117, 95, 38, 118, 38, 118, 38, 118, 38, 46, 117, 95, 38, 119, 38, 119, 38, 119, 38, 46, 117, 95, 38, 46, 38, 120, 38, 114, 38, 114, 38, 46, 100, 117, 95, 38, 121, 38, 116, 38, 116, 38, 46, 100, 117, 95, 38, 122, 38, 118, 38, 118, 38, 46, 100, 117, 95, 38, 119, 38, 119, 38, 119, 38, 46, 38, 123, 38, 46, 100, 38, 124, 38, 46, 100, 38, 125, 38, 46, 100, 38, 46, 99, 38, 46, 24, 0]; _tsip_machine_parser_uri_trans_targs = [26, 1, 32, 3, 4, 2, 26, 6, 51, 51, 5, 52, 9, 10, 64, 26, 65, 13, 14, 65, 66, 16, 17, 19, 0, 20, 19, 20, 22, 102, 21, 23, 24, 102, 23, 24, 102, 25, 27, 28, 48, 50, 32, 55, 61, 67, 26, 29, 34, 46, 30, 31, 26, 33, 35, 36, 44, 37, 38, 42, 39, 40, 41, 43, 45, 47, 49, 26, 53, 26, 5, 7, 8, 54, 56, 57, 58, 59, 26, 60, 26, 62, 63, 11, 26, 64, 12, 26, 13, 12, 15, 68, 101, 69, 72, 26, 70, 71, 73, 88, 74, 86, 75, 76, 84, 77, 78, 82, 79, 80, 81, 83, 85, 87, 89, 97, 90, 93, 91, 92, 94, 95, 96, 98, 99, 100]; _tsip_machine_parser_uri_trans_actions = [25, 0, 13, 0, 0, 0, 27, 0, 13, 53, 1, 13, 0, 0, 67, 23, 53, 1, 0, 13, 13, 0, 0, 1, 0, 1, 0, 0, 5, 38, 0, 1, 1, 59, 0, 0, 44, 0, 0, 35, 0, 0, 56, 63, 56, 3, 21, 0, 0, 0, 0, 0, 17, 13, 0, 0, 0, 0, 0, 0, 13, 13, 13, 0, 0, 0, 0, 19, 1, 50, 0, 7, 0, 0, 13, 13, 0, 13, 29, 0, 32, 13, 13, 0, 41, 13, 5, 47, 0, 7, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]; _tsip_machine_parser_uri_to_state_actions = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]; _tsip_machine_parser_uri_from_state_actions = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]; _tsip_machine_parser_uri_eof_trans = [0, 1, 1, 1, 1, 7, 7, 7, 7, 7, 7, 1, 16, 16, 16, 16, 16, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 47, 47, 47, 47, 53, 53, 47, 47, 47, 47, 47, 53, 53, 53, 47, 47, 47, 47, 47, 47, 47, 68, 47, 70, 70, 47, 47, 53, 53, 53, 79, 53, 81, 53, 53, 53, 85, 88, 88, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 0]; tsip_machine_parser_uri_start = 26; tsip_machine_parser_uri_first_final = 26; tsip_machine_parser_uri_error = 0; tsip_machine_parser_uri_en_sip_usrinfo = 18; tsip_machine_parser_uri_en_main = 26; tsip_uri.prototype.Parse = function(n) { var e = 0; var k = 0; var w = n.length; var h = w; var x = tsk_buff_str2ib(n); var v; var f = new tsip_uri(tsip_uri_type_e.unknown); e = tsip_machine_parser_uri_start; ts = null; te = null; act = 0; var g, o, b, d, c, s, l; var q, j, a, r, u; var t; g = o = b = s = l = null; q = 0; j = 10; a = 15; r = 20; u = 30; t = 40; while (true) { _trigger_goto = false; if (q <= 0) { if (k == w) { q = u; continue } if (e == 0) { q = t; continue } } if (q <= j) { s = _tsip_machine_parser_uri_from_state_actions[e]; l = _tsip_machine_parser_uri_actions[s]; s += 1; while (l > 0) { l -= 1; s += 1; switch (_tsip_machine_parser_uri_actions[s - 1]) { case 12: ts = k; break } } if (_trigger_goto) { continue } b = _tsip_machine_parser_uri_key_offsets[e]; o = _tsip_machine_parser_uri_index_offsets[e]; g = _tsip_machine_parser_uri_single_lengths[e]; _break_match = false; do { if (g > 0) { _lower = b; _upper = b + g - 1; while (true) { if (_upper < _lower) { break } _mid = _lower + ((_upper - _lower) >> 1); if (x[k] < _tsip_machine_parser_uri_trans_keys[_mid]) { _upper = _mid - 1 } else { if (x[k] > _tsip_machine_parser_uri_trans_keys[_mid]) { _lower = _mid + 1 } else { o += (_mid - b); _break_match = true; break } } } if (_break_match) { break } b += g; o += g } g = _tsip_machine_parser_uri_range_lengths[e]; if (g > 0) { _lower = b; _upper = b + (g << 1) - 2; while (true) { if (_upper < _lower) { break } _mid = _lower + (((_upper - _lower) >> 1) & ~1); if (x[k] < _tsip_machine_parser_uri_trans_keys[_mid]) { _upper = _mid - 2 } else { if (x[k] > _tsip_machine_parser_uri_trans_keys[_mid + 1]) { _lower = _mid + 2 } else { o += ((_mid - b) >> 1); _break_match = true; break } } } if (_break_match) { break } o += g } } while (false); o = _tsip_machine_parser_uri_indicies[o] } if (q <= a) { e = _tsip_machine_parser_uri_trans_targs[o]; if (_tsip_machine_parser_uri_trans_actions[o] != 0) { s = _tsip_machine_parser_uri_trans_actions[o]; l = _tsip_machine_parser_uri_actions[s]; s += 1; while (l > 0) { l -= 1; s += 1; switch (_tsip_machine_parser_uri_actions[s - 1]) { case 0: v = k; break; case 1: f.e_type = tsip_uri_type_e.sip; f.s_scheme = f.e_type.s_scheme; break; case 2: f.e_type = tsip_uri_type_e.sips; f.s_scheme = f.e_type.s_scheme; break; case 3: f.e_type = tsip_uri_type_e.tel; f.s_scheme = f.e_type.s_scheme; break; case 4: f.e_host_type = tsip_host_type_e.ipv4; break; case 5: f.e_host_type = tsip_host_type_e.ipv6; break; case 6: f.e_host_type = tsip_host_type_e.hostname; break; case 7: f.s_user_name = tsk_ragel_parser_get_string(n, k, v); break; case 8: f.s_password = tsk_ragel_parser_get_string(n, k, v); break; case 9: var m = tsk_ragel_parser_get_param(n, k, v); if (m) { f.ao_params.push(m) } break; case 10: e = 26; _trigger_goto = true; q = r; break; break; case 13: te = k + 1; break; case 14: te = k + 1; f.s_host = tsk_ragel_scanner_get_string(n, ts, te); if (f.e_host_type.i_id == tsip_host_type_e.ipv6.i_id) { f.s_host = tsk_string_unquote(f.s_host, "[", "]") } break; case 15: te = k; k = k - 1; if (tsk_string_contains(n.substring(te), (w - te), "@")) { e = 18; _trigger_goto = true; q = r; break } break; case 16: te = k; k = k - 1; break; case 17: te = k; k = k - 1; f.s_host = tsk_ragel_scanner_get_string(n, ts, te); if (f.e_host_type.i_id == tsip_host_type_e.ipv6.i_id) { f.s_host = tsk_string_unquote(f.s_host, "[", "]") } break; case 18: te = k; k = k - 1; ts++; f.i_port = tsk_ragel_scanner_get_int(n, ts, te); break; case 19: te = k; k = k - 1; break; case 20: te = k; k = k - 1; break; case 21: k = ((te)) - 1; break; case 22: k = ((te)) - 1; f.s_host = tsk_ragel_scanner_get_string(n, ts, te); if (f.e_host_type.i_id == tsip_host_type_e.ipv6.i_id) { f.s_host = tsk_string_unquote(f.s_host, "[", "]") } break; case 23: k = ((te)) - 1; break } } } if (_trigger_goto) { continue } } if (q <= r) { s = _tsip_machine_parser_uri_to_state_actions[e]; l = _tsip_machine_parser_uri_actions[s]; s += 1; while (l > 0) { l -= 1; s += 1; switch (_tsip_machine_parser_uri_actions[s - 1]) { case 11: ts = null; break } } if (_trigger_goto) { continue } if (e == 0) { q = t; continue } k += 1; if (k != w) { q = j; continue } } if (q <= u) { if (k == h) { if (_tsip_machine_parser_uri_eof_trans[e] > 0) { o = _tsip_machine_parser_uri_eof_trans[e] - 1; q = a; continue } } } if (q <= t) { break } } if (e < 26) { tsk_utils_log_error("Failed to parse SIP/SIPS/TEL URI: " + n); return null } return f }; function tsip_auth_basic_response(b, a) { return Base64.encode(tsk_string_format("{0}:{1}", b, a)) } function tsip_auth_digest_HA1(c, b, a) { return MD5.hexdigest(tsk_string_format("{0}:{1}:{2}", c, b, a)) } function tsip_auth_digest_HA1sess(e, c, b, d, a) { return MD5.hexdigest(tsk_string_format("{0}:{1}:{2}:{3}:{4}", e, c, b, d, a)) } function tsip_auth_digest_HA2(e, b, c, f) { var a = null; if (tsk_string_is_null_or_empty(f) || tsk_string_iequals(f, "auth")) { a = tsk_string_format("{0}:{1}", e, b) } else { if (tsk_string_iequals(f, "auth-int")) { if (c) { var d = MD5.hash(c); a = tsk_string_format("{0}:{1}:{2}", e, b, d) } else { a = tsk_string_format("{0}:{1}:{2}", e, b, "d41d8cd98f00b204e9800998ecf8427e") } } } return MD5.hexdigest(a) } function tsip_auth_digest_response(c, e, d, b, f, a) { if (tsk_string_iequals(f, "auth") || tsk_string_iequals(f, "auth-int")) { return MD5.hexdigest(tsk_string_format("{0}:{1}:{2}:{3}:{4}:{5}", c, e, d, b, f, a)) } else { return MD5.hexdigest(tsk_string_format("{0}:{1}:{2}", c, e, a)) } } function tsip_challenge(c, h, g, b, e, d, a, f) { this.o_stack = c; this.b_isproxy = h; this.s_scheme = g; this.s_realm = b; this.s_nonce = e; this.s_opaque = d; this.s_algorithm = a; this.s_cnonce = null; this.i_nc = 0; if (f) { this.s_qop = tsk_string_contains(f, f.length, "auth-int") ? "auth-int" : (tsk_string_contains(f, f.length, "auth") ? "auth" : null); this.reset_cnonce() } } tsip_challenge.prototype.get_username = function() { return this.o_stack.identity.s_impi }; tsip_challenge.prototype.get_password = function() { return this.o_stack.identity.s_password }; tsip_challenge.prototype.reset_cnonce = function() { if (this.s_qop) { this.s_cnonce = MD5.hexdigest(tsk_string_random(21)); this.i_nc = 1 } }; tsip_challenge.prototype.get_response = function(g, c, e) { if (tsk_string_iequals(this.s_scheme, "Digest")) { var b = ""; var d = tsip_auth_digest_HA1(this.get_username(), this.s_realm, this.get_password()); var a = tsip_auth_digest_HA2(g, c, e, this.s_qop); if (this.i_nc) { b = tsip_challenge.prototype.Ncount2String(this.i_nc) } var f = tsip_auth_digest_response(d, this.s_nonce, b, this.s_cnonce, this.s_qop, a); if (this.s_qop) { ++this.i_nc } return f } return null }; tsip_challenge.prototype.update = function(g, c, e, d, b, f) { var a = !tsk_string_iequals(this.s_nonce, e); this.s_scheme = g; this.s_realm = c; this.s_nonce = e; this.s_opaque = d; this.s_algorithm = b; if (f) { this.s_qop = tsk_string_contains(f, f.length, "auth-int") ? "auth-int" : (tsk_string_contains(f, f.length, "auth") ? "auth" : null) } if (a && this.s_qop) { this.reset_cnonce() } return 0 }; tsip_challenge.prototype.create_header_authorization = function(d) { var b = null; var a = null; var c = null; if (!(a = tsip_uri_tostring(d.line.request.o_uri, true, false))) { tsk_utils_log_error("Failed to parse URI: " + d.line.request.o_uri); return null } if (this.i_nc) { b = tsip_challenge.prototype.Ncount2String(this.i_nc) } var e = this.get_response(d.line.request.s_method, a, d.o_content); c = new tsip_header_Authorization(); c.e_type = this.b_isproxy ? tsip_header_type_e.Proxy_Authorization : tsip_header_type_e.Authorization; c.s_scheme = this.s_scheme; c.s_username = this.get_username(); c.s_realm = this.s_realm; c.s_nonce = this.s_nonce; c.s_uri = a; c.s_response = e; c.s_algorithm = this.s_algorithm ? this.s_algorithm : "MD5"; c.s_cnonce = this.i_nc ? this.s_cnonce : null; c.s_opaque = this.s_opaque; c.s_qop = this.s_qop; c.s_nc = b; return c }; tsip_challenge.prototype.CreateEmptyHeaderAuthorization = function(d, b, a) { var c = new tsip_header_Authorization(); if (c) { c.e_type = tsip_header_type_e.Authorization; c.s_scheme = "Digest"; c.s_username = d; c.s_realm = b; c.s_nonce = ""; c.s_response = ""; c.s_uri = a } return c }; tsip_challenge.prototype.Ncount2String = function(c) { var b = 7; var a = ""; do { a += "0123456789abcdef" [(c >> b * 4) & 15] } while (b--); return a }; tsip_dialog.prototype.__i_timer_shutdown = 3000; var tsip_dialog_type_e = { UNKNOWN: { i_id: 0, s_name: "Unknown" }, INVITE: { i_id: 1, s_name: "INVITE" }, MESSAGE: { i_id: 2, s_name: "MESSAGE" }, INFO: { i_id: 3, s_name: "INFO" }, OPTIONS: { i_id: 4, s_name: "OPTIONS" }, PUBLISH: { i_id: 5, s_name: "PUBLISH" }, REGISTER: { i_id: 6, s_name: "REGISTER" }, SUBSCRIBE: { i_id: 7, s_name: "SUBSCRIBE" } }; var tsip_dialog_state_e = { INITIAL: { i_id: 0, s_name: "Initial" }, EARLY: { i_id: 1, s_name: "Early" }, ESTABLISHED: { i_id: 2, s_name: "Established" }, TERMINATED: { i_id: 3, s_name: "Terminated" } }; var tsip_dialog_event_type_e = { I_MSG: { i_id: 0, s_name: "I_MSG" }, O_MSG: { i_id: 1, s_name: "O_MSG" }, TRANSAC_OK: { i_id: 2, s_name: "TRANSAC_OK" }, CANCELED: { i_id: 3, s_name: "CANCELED" }, TERMINATED: { i_id: 4, s_name: "TERMINATED" }, TIMEDOUT: { i_id: 5, s_name: "TIMEDOUT" }, ERROR: { i_id: 6, s_name: "ERROR" }, TRANSPORT_ERROR: { i_id: 7, s_name: "TRANSPORT_ERROR" } }; function tsip_dialog() { this.e_type = tsip_dialog_type_e.UNKNOWN; this.o_fsm = null; this.o_session = null; this.o_action_curr = null; this.e_state = tsip_dialog_state_e.INITIAL; this.b_initialized = false; this.b_running = false; this.last_error = {}; this.last_error.s_phrase = null; this.last_error.i_code = 0; this.last_error.o_message = null; this.s_tag_local = null; this.o_uri_local = null; this.s_tag_remote = null; this.o_uri_remote = null; this.o_uri_remote_target = null; this.i_cseq_value = 0; this.s_cseq_method = null; this.i_expires = 0; this.s_callid = null; this.ao_hdr_record_routes = null; this.ao_challenges = null; this.fn_callback = null } tsip_dialog.prototype.init = function(b, e, d, c, a) { if (this.b_initialized) { tsk_utils_log_error("Dialog already initialized"); return -2 } this.e_state = tsip_dialog_state_e.INITIAL; this.e_type = b; this.ao_hdr_record_routes = new Array(); this.ao_challenges = new Array(); this.i_expires = tsip_session.prototype.__i_expires_default; var f = !tsk_string_is_null_or_empty(e); this.s_callid = f ? e : tsk_string_random_uuid(); if ((this.o_session = d)) { this.i_expires = d.i_expires; this.o_uri_local = f ? d.o_uri_to : d.o_uri_from; if (d.o_uri_to) { this.o_uri_remote = d.o_uri_to; this.o_uri_remote_target = d.o_uri_to } else { this.o_uri_remote = d.o_uri_from; this.o_uri_remote_target = d.o_stack.network.o_uri_realm } } this.s_tag_local = tsk_string_random(20); this.s_tag_remote = null; this.i_cseq_value = Math.floor((Math.random() * 65535)); this.o_fsm = new tsk_fsm(c, a, null, this); this.b_initialized = true; return 0 }; tsip_dialog.prototype.deinit = function() { this.get_layer_dialog().dialog_remove(this); this.get_layer_transac().cancel_by_dialog(this); this.b_initialized = false; return 0 }; tsip_dialog.prototype.compare = function(a) { return tsip_dialog_compare(this, a) }; tsip_dialog.prototype.request_new = function(g) { if (!this.o_session || !this.o_session.o_stack || !g) { tsk_utils_log_error("Invalid argument"); return null } var x = null; var d = null; var e = null; var p = null; var n = -1; var c = null; var u = this.o_session; var q = u.o_stack; c = this.s_callid; d = this.o_uri_remote; e = this.o_uri_local; if (!this.ao_hdr_record_routes || this.ao_hdr_record_routes.length == 0) { p = this.o_uri_remote_target } else { o_uri_first_route = this.ao_hdr_record_routes[0].o_uri; if (tsk_params_have_param(o_uri_first_route.ao_params, "lr")) { p = this.o_uri_remote_target; n = 0 } else { p = o_uri_first_route; n = 1 } } x = new tsip_request(g, p, e, d, c, this.i_cseq_value); x.o_hdr_To.s_tag = this.s_tag_remote; x.o_hdr_From.s_tag = this.s_tag_local; x.b_update = true; switch (x.line.request.e_type) { case tsip_request_type_e.MESSAGE: case tsip_request_type_e.PUBLISH: case tsip_request_type_e.BYE: if (x.line.request.e_type == tsip_request_type_e.PUBLISH) { x.add_header(new tsip_header_Expires(this.i_expires / 1000)) } for (var s = 0; s < this.o_session.ao_caps.length; ++s) { var f = tsk_string_format("*;{0}", tsk_param_tostring(this.o_session.ao_caps[s])); if (f) { x.add_header(new tsip_header_Dummy("Accept-Contact", f)) } } break; default: var k = null; var t = null; if (x.line.request.e_type == tsip_request_type_e.OPTIONS || x.line.request.e_type == tsip_request_type_e.PUBLISH || x.line.request.e_type == tsip_request_type_e.REGISTER) { k = tsk_string_format('m: "{1}"<{0}:{2}@{3}:{4};rtcweb-breaker={5}>;click2call={6};expires={7}\r\n', "sip", q.identity.s_display_name, e.s_user_name, "127.0.0.1", 5060, q.network.b_rtcweb_enabled ? "yes" : "no", q.network.b_click2call_enabled ? "yes" : "no", Math.floor(this.i_expires / 1000)) } else { if (x.line.request.e_type == tsip_request_type_e.SUBSCRIBE) { x.add_header(new tsip_header_Expires(this.i_expires / 1000)) } k = tsk_string_format('m: "{1}"<{0}:{2}@{3}:{4};rtcweb-breaker={5};click2call={6}>', "sip", q.identity.s_display_name, e.s_user_name, "127.0.0.1", 5060, q.network.b_rtcweb_enabled ? "yes" : "no", q.network.b_click2call_enabled ? "yes" : "no"); if (x.line.request.e_type == tsip_request_type_e.INVITE && q.network.b_rtcweb_enabled) { k += ";impi=" + encodeURIComponent(q.identity.s_impi); k += ";ha1=" + tsip_auth_digest_HA1(q.identity.s_impi, q.network.o_uri_realm.s_host, q.identity.s_password) } k += "\r\n" } t = tsip_header_Contact.prototype.Parse(k); if (t && t.length > 0) { x.o_hdr_Contact = t[0] } if (x.o_hdr_Contact) { for (var s = 0; s < this.o_session.ao_caps.length; ++s) { tsk_params_add_param(x.o_hdr_Contact.ao_params, this.o_session.ao_caps[s]) } } break } if (this.e_state == tsip_dialog_state_e.INITIAL && this.ao_challenges.length == 0) { if (x.is_register() && !q.security.b_earlyIMS) { var b = q.network.o_uri_realm ? q.network.o_uri_realm.s_host : "(null)"; var w = tsip_uri_tostring(x.line.request.o_uri, false, false); var h = tsip_challenge.prototype.CreateEmptyHeaderAuthorization(q.identity.s_impi, b, w); x.add_header(h) } } else { if (this.ao_challenges.length > 0) { for (var s = 0; s < this.ao_challenges.length; ++s) { var a = this.ao_challenges[s].create_header_authorization(x); if (a) { x.add_header(a) } } } } if (!x.is_ack() && !x.is_cancel()) { x.o_hdr_CSeq.i_seq = ++(this.i_cseq_value) } if (!x.is_register()) { if (n != -1) { if (this.e_state == tsip_dialog_state_e.EARLY || this.e_state == tsip_dialog_state_e.ESTABLISHED) { var o = -1; for (var s = 0; s < this.ao_hdr_record_routes.length; ++s) { var v = this.ao_hdr_record_routes[s].o_uri; var m = null; if (++o < n || !v) { continue } if ((m = new tsip_header_Route(v))) { for (var r = 0; r < this.ao_hdr_record_routes[s].ao_params.length; ++r) { m.ao_params.push(this.ao_hdr_record_routes[s].ao_params[r]) } x.add_header(m) } } } } else { if (this.e_state == tsip_dialog_state_e.INITIAL || this.e_state == tsip_dialog_state_e.EARLY) { for (var s = 0; s < q.ao_uri_service_routes.length; ++s) { x.add_header(new tsip_header_Service_Route(q.ao_uri_service_routes[s])) } } } } if (q.network.e_proxy_cscf_type == tsip_transport_type_e.WS || q.network.e_proxy_cscf_type == tsip_transport_type_e.WSS) { var l = q.__get_proxy_outbound_uri_string(); if (l) { x.add_header(new tsip_header_Dummy("Route", l), true) } } for (var s = 0; s < u.ao_headers.length; ++s) { x.add_header(u.ao_headers[s]) } for (var s = 0; s < q.ao_headers.length; ++s) { x.add_header(q.ao_headers[s]) } this.add_common_headers(x); if (u.s_sigcomp_id) { x.s_sigcomp_id = u.s_sigcomp_id } return x }; tsip_dialog.prototype.response_new = function(b, f, c) { var e; if ((e = new tsip_response(b, f, c))) { switch (c.line.request.e_type) { case tsip_request_type_e.MESSAGE: case tsip_request_type_e.PUBLISH: break; default: if (e.o_hdr_To && !e.o_hdr_To.s_tag) { e.o_hdr_To.s_tag = this.s_tag_local } if (this.o_uri_local && b >= 101 && b <= 299) { var a; var d = tsk_string_format("m: <{0}:{1}@{2}:{3}>\r\n", "sip", this.o_uri_local.s_user_name, "127.0.0.1", 5060); var a = tsip_header_Contact.prototype.Parse(d); if (a != null && a.length > 0) { e.o_hdr_Contact = a[0]; e.b_update = true } } break } if (this.get_session().s_sigcomp_id) { e.s_sigcomp_id = this.get_session().s_sigcomp_id } } return e }; tsip_dialog.prototype.response_send = function(c) { var d = -1; var a = this.get_layer_transac(); if (a) { var b = a.find_server(c); if (b) { setTimeout(function() { b.callback(tsip_transac_event_type_e.OUTGOING_MSG, c) }, 1); d = 0 } else { tsk_utils_log_error("Failed to find associated server transaction.") } } else { tsk_utils_log_error("Invalid parameter") } return d }; tsip_dialog.prototype.get_session = function() { return this.o_session }; tsip_dialog.prototype.get_stack = function() { if (this.o_session) { return this.o_session.o_stack } return null }; tsip_dialog.prototype.get_layer_transac = function() { var a = this.get_stack(); if (a) { return a.o_layer_transac } return null }; tsip_dialog.prototype.get_layer_dialog = function() { var a = this.get_stack(); if (a) { return a.o_layer_dialog } return null }; tsip_dialog.prototype.get_layer_transport = function() { var a = this.get_stack(); if (a) { return a.o_layer_transport } return null }; tsip_dialog.prototype.request_send = function(c) { if (!c) { tsk_utils_log_error("Invalid argument"); return -1 } if (c.is_ack()) { if (this.get_layer_transport().send(null, c) > 0) { return 0 } return -2 } var a = this.get_layer_transac(); if (!a) { tsk_utils_log_error("Invalid transac layer"); return -1 } var d = -1; var b = a.transac_new(true, c, this); if (b) { switch (b.e_type) { case tsip_transac_type_e.ICT: case tsip_transac_type_e.NICT: d = b.start(c); break } } return d }; tsip_dialog.prototype.add_common_headers = function(c) { var b = false; var d = null; var e = null; var a = this.get_stack(); if (!c || !a) { tsk_utils_log_error("Invalid argument"); return -1 } b = a.security.b_earlyIMS; d = a.identity.o_uri_pref; if (d) { switch (c.line.request.e_type) { case tsip_request_type_e.BYE: case tsip_request_type_e.INVITE: case tsip_request_type_e.OPTIONS: case tsip_request_type_e.SUBSCRIBE: case tsip_request_type_e.NOTIFY: case tsip_request_type_e.REFER: case tsip_request_type_e.MESSAGE: case tsip_request_type_e.PUBLISH: case tsip_request_type_e.REGISTER: if (!b || (b && c.is_register())) { c.add_header(new tsip_header_P_Preferred_Identity(d)) } break } } if (e) { switch (c.line.request.e_type) { case tsip_request_type_e.BYE: case tsip_request_type_e.INVITE: case tsip_request_type_e.OPTIONS: case tsip_request_type_e.REGISTER: case tsip_request_type_e.SUBSCRIBE: case tsip_request_type_e.NOTIFY: case tsip_request_type_e.PRACK: case tsip_request_type_e.INFO: case tsip_request_type_e.UPDATE: case tsip_request_type_e.REFER: case tsip_request_type_e.MESSAGE: case tsip_request_type_e.PUBLISH: c.add_header(new tsip_header_P_Access_Network_Info(e)); break } } return 0 }; tsip_dialog.prototype.get_action_curr = function() { return this.o_action_curr }; tsip_dialog.prototype.set_action_curr = function(a) { this.o_action_curr = a; return 0 }; tsip_dialog.prototype.set_last_error = function(a, c, b) { this.last_error.i_code = a; this.last_error.s_phrase = c; this.last_error.o_message = b; return 0 }; tsip_dialog.prototype.signal = function(a, c, b) { return tsip_event.prototype.Signal(tsip_event_type_e.DIALOG, this.o_session, a, c, b) }; tsip_dialog.prototype.timer_schedule = function(T, N) { this.timer_cancel(N); var This = this; var s_code = tsk_string_format("This.o_timer{1} = setTimeout(function(){ __tsip_dialog_{0}_timer_callback(This, This.o_timer{1})}, This.i_timer{1});", T, N); eval(s_code) }; tsip_dialog.prototype.timer_cancel = function(N) { var s_code = tsk_string_format("if(this.o_timer{0}) { clearTimeout(this.o_timer{0}); this.o_timer{0} = null; }", N); eval(s_code) }; tsip_dialog.prototype.callback = function(b, a) { if (this.fn_callback) { return this.fn_callback(this, b, a) } tsk_utils_log_error("Invalid callback function"); return -1 }; tsip_dialog.prototype.set_callback = function(a) { this.fn_callback = a }; tsip_dialog.prototype.fsm_act = function(b, c, a) { if (!this.o_fsm) { tsk_utils_log_error("Invalid argument"); return -1 } return this.o_fsm.act(b, this.o_fsm.get_usr_data(), c, this.o_fsm.get_usr_data(), c, a) }; tsip_dialog.prototype.hangup = function(a) { if (this.e_state == tsip_dialog_state_e.ESTABLISHED || (this.o_session && this.o_session.b_server && this.e_state == tsip_dialog_state_e.EARLY) || this.e_type != tsip_dialog_type_e.INVITE) { return this.fsm_act(tsip_action_type_e.HANGUP, null, a) } else { return this.fsm_act(tsip_action_type_e.CANCEL, null, a) } }; tsip_dialog.prototype.shutdown = function(a) { return this.fsm_act(tsip_action_type_e.SHUTDOWN, null, a) }; tsip_dialog.prototype.update_with_response = function(c) { if (!c || !c.is_response() || !c.o_hdr_To) { tsk_utils_log_error("Invalid argument"); return -1 } var a = c.get_response_code(); var g = c.o_hdr_To.s_tag; if (a == 401 || a == 407 || a == 421 || a == 494) { var f; f = (c.is_response_to_register() && this.e_state == tsip_dialog_state_e.ESTABLISHED); return this.update_challenges(c, f) } else { if (100 < a && a < 300) { var b = this.e_state; if (a <= 199) { if (tsk_string_is_null_or_empty(c.o_hdr_To.s_tag)) { tsk_utils_log_error("Invalid tag parameter"); return -1 } b = tsip_dialog_state_e.EARLY } else { b = tsip_dialog_state_e.ESTABLISHED } if (!c.is_response_to_register() && c.o_hdr_Contact && c.o_hdr_Contact.o_uri) { this.o_uri_remote_target = tsip_uri.prototype.Parse(tsip_uri_tostring(c.o_hdr_Contact.o_uri, true, false)) } var d; var e; this.ao_hdr_record_routes.splice(0, this.ao_hdr_record_routes.length); for (d = 0; (e = c.get_header_at(tsip_header_type_e.Record_Route, d)); ++d) { this.ao_hdr_record_routes.push(e) } this.ao_hdr_record_routes.reverse(); if (this.e_state == tsip_dialog_state_e.ESTABLISHED && tsk_string_iequals(this.s_tag_remote, g)) { return 0 } else { if (!c.is_response_to_register() && !c.is_response_to_publish()) { this.s_tag_remote = g } } this.e_state = b; return 0 } } return 0 }; tsip_dialog.prototype.update_with_invite = function(a) { if (!a) { tsk_utils_log_error("Invalid parameter"); return -1 } if (a.o_hdr_Contact && a.o_hdr_Contact.o_uri) { this.o_uri_remote_target = tsip_uri.prototype.Parse(tsip_uri_tostring(a.o_hdr_Contact.o_uri, true, false)) } this.s_tag_remote = a.o_hdr_From ? a.o_hdr_From.s_tag : "tag_doubango"; if (a.o_hdr_From && a.o_hdr_From.o_uri) { this.o_uri_remote = a.o_hdr_From.o_uri } var b; var c; this.ao_hdr_record_routes.splice(0, this.ao_hdr_record_routes.length); for (b = 0; (c = a.get_header_at(tsip_header_type_e.Record_Route, b)); ++b) { this.ao_hdr_record_routes.push(c) } this.e_state = tsip_dialog_state_e.EARLY; return 0 }; tsip_dialog.prototype.update_challenges = function(b, d) { var f = -1; var k; var h; var a; for (var e = 0; (h = b.get_header_at(tsip_header_type_e.WWW_Authenticate, e)); e++) { var g = true; for (var c = 0; c < this.ao_challenges.length; ++c) { k = this.ao_challenges[c]; if (k.b_isproxy) { continue } if (tsk_string_iequals(k.s_realm, h.s_realm) && (h.b_stale || d)) { if ((f = k.update(h.s_scheme, h.s_realm, h.s_nonce, h.s_opaque, h.s_algorithm, h.s_qop))) { return f } else { g = false; continue } } else { tsk_utils_log_error("Failed to handle new challenge"); return -1 } } if (g) { if ((k = new tsip_challenge(this.get_stack(), false, h.s_scheme, h.s_realm, h.s_nonce, h.s_opaque, h.s_algorithm, h.s_qop))) { this.ao_challenges.push(k) } else { tsk_utils_log_error("Failed to handle new challenge"); return -1 } } } for (var e = 0; (a = b.get_header_at(tsip_header_type_e.Proxy_Authenticate, e)); e++) { var g = true; for (var c = 0; c < this.ao_challenges.length; ++c) { k = this.ao_challenges[c]; if (!k.b_isproxy) { continue } if (tsk_string_iequals(k.s_realm, a.s_realm) && (a.b_stale || d)) { if ((f = k.update(a.s_scheme, a.s_realm, a.s_nonce, a.s_opaque, a.s_algorithm, a.s_qop))) { return f } else { g = false; continue } } else { tsk_utils_log_error("Failed to handle new challenge"); return -1 } } if (g) { if ((k = new tsip_challenge(this.get_stack(), true, a.s_scheme, a.s_realm, a.s_nonce, a.s_opaque, a.s_algorithm, a.s_qop))) { this.ao_challenges.push(k) } else { tsk_utils_log_error("Failed to handle new challenge"); return -1 } } } return 0 }; tsip_dialog.prototype.get_newdelay = function(a) { var j = this.i_expires / 1000; var e = j; var f; var h; var d = false; if (a.is_notify()) { var b; if ((b = a.get_header(tsip_header_type_e.Subscription_State))) { if (b.i_expires > 0) { j = b.i_expires; d = true } } } if (!d && (f = a.get_header(tsip_header_type_e.Expires))) { j = f.i_value; d = true } for (h = 0; !d && (f = a.get_header_at(tsip_header_type_e.Contact, h)); ++h) { var k = f; if (k.o_uri) { var c = tsk_param_get_value_by_name(k.o_uri.ao_params, "transport"); var g = this.get_stack().__get_contact_uri(c ? c : "udp"); if (g) { if (tsk_string_equals(k.o_uri.s_user_name, g.s_user_name) && tsk_string_equals(k.o_uri.s_host, g.s_host) && k.o_uri.i_port == g.i_port) { if (k.i_expires >= 0) { j = k.i_expires; d = false; break } } } } } e = (j > 1200) ? (j - 600) : (j >> 1); return (e * 1000) }; tsip_dialog.prototype.ApplyAction = function(c, a) { if (!c || !a) { tsk_utils_log_error("Invalid argument"); return -1 } for (var b = 0; b < a.ao_headers.length; ++b) { c.add_header(a.ao_headers[b]) } if (a.line_resp.i_code && a.line_resp.s_phrase && c.is_response()) { c.line.response.i_status_code = a.line_resp.i_code; c.line.response.s_reason_phrase = a.line_resp.s_phrase } if (a.o_content) { c.add_content(a.o_content) } return 0 }; function tsip_dialog_compare(b, a) { if (b && a) { if ((b.s_callid == a.s_callid) && ((b.s_tag_local == a.s_tag_local)) && ((b.s_tag_remote == a.s_tag_remote))) { return 0 } } return -1 } if (!window.__b_release_mode) { tsip_api_add_js_scripts("head", "src/tinySIP/src/dialogs/tsip_dialog_generic.js", "src/tinySIP/src/dialogs/tsip_dialog_invite.js", "src/tinySIP/src/dialogs/tsip_dialog_register.js") } tsip_dialog_generic.prototype = Object.create(tsip_dialog.prototype); tsip_dialog_generic.prototype.__b_debug_state_machine = true; var tsip_dialog_generic_actions_e = { ACCEPT: tsip_action_type_e.ACCEPT, REJECT: tsip_action_type_e.REJECT, HANGUP: tsip_action_type_e.HANGUP, CANCEL: tsip_action_type_e.CANCEL, SHUTDOWN: tsip_action_type_e.SHUTDOWN, O_SUBSCRIBE: tsip_action_type_e.SUBSCRIBE, O_OPTIONS: tsip_action_type_e.OPTIONS, O_MESSAGE: tsip_action_type_e.MESSAGE, O_INFO: tsip_action_type_e.INFO, O_PUBLISH: tsip_action_type_e.PUBLISH, O_UNPUBLISH: tsip_action_type_e.UNPUBLISH, I_SUBSCRIBE: 10000, I_MESSAGE: 10001, I_OPTIONS: 10002, I_INFO: 10003, I_PUBLISH: 10004, I_NOTIFY: 10005, I_1XX: 50000, I_2XX: 50001, I_401_407_421_494: 50002, I_423: 50003, I_300_to_699: 50004, SHUTDOWN_TIMEDOUT: 60000, TRANSPORT_ERROR: 60002, ERROR: 60003 }; var tsip_dialog_generic_states_e = { STARTED: 0, INPROGRESS: 1, INCOMING: 2, CONNECTED: 3, TERMINATED: 4 }; function tsip_dialog_generic(b, c, a) { tsip_dialog.call(this); this.b_disconnecting = false; this.o_last_iMessage = null; this.o_timerRefresh = null; this.o_timerShutdown = null; this.i_timerShutdown = (tsip_dialog.prototype.__i_timer_shutdown << 1) / 3; this.init(b, a, c, tsip_dialog_generic_states_e.STARTED, tsip_dialog_generic_states_e.TERMINATED); this.set_callback(__tsip_dialog_generic_event_callback); this.o_fsm.set_debug_enabled(tsip_dialog_generic.prototype.__b_debug_state_machine); this.o_fsm.set_onterm_callback(__tsip_dialog_generic_onterm, this); this.init_message(); this.init_publish(); this.init_subscribe(); this.o_fsm.set(tsk_fsm_entry.prototype.CreateAlways(tsip_dialog_generic_states_e.INPROGRESS, tsip_dialog_generic_actions_e.I_1XX, tsip_dialog_generic_states_e.INPROGRESS, tsip_dialog_generic_InProgress_2_InProgress_X_1xx, "tsip_dialog_generic_InProgress_2_InProgress_X_1xx"), tsk_fsm_entry.prototype.Create(tsip_dialog_generic_states_e.INPROGRESS, tsip_dialog_generic_actions_e.I_2XX, __tsip_dialog_generic_cond_is_dialogless, tsip_dialog_generic_states_e.TERMINATED, tsip_dialog_generic_InProgress_2_Terminated_X_2xx, "tsip_dialog_generic_InProgress_2_Terminated_X_2xx"), tsk_fsm_entry.prototype.Create(tsip_dialog_generic_states_e.INPROGRESS, tsip_dialog_generic_actions_e.I_2XX, __tsip_dialog_generic_cond_is_disconnecting, tsip_dialog_generic_states_e.TERMINATED, tsip_dialog_generic_InProgress_2_Terminated_X_2xx, "tsip_dialog_generic_InProgress_2_Terminated_X_2xx"), tsk_fsm_entry.prototype.Create(tsip_dialog_generic_states_e.INPROGRESS, tsip_dialog_generic_actions_e.I_2XX, __tsip_dialog_generic_cond_is_dialogfull, tsip_dialog_generic_states_e.CONNECTED, tsip_dialog_generic_InProgress_2_Connected_X_2xx, "tsip_dialog_generic_InProgress_2_Connected_X_2xx"), tsk_fsm_entry.prototype.CreateAlways(tsip_dialog_generic_states_e.INPROGRESS, tsip_dialog_generic_actions_e.I_401_407_421_494, tsip_dialog_generic_states_e.INPROGRESS, tsip_dialog_generic_InProgress_2_InProgress_X_401_407_421_494, "tsip_dialog_generic_InProgress_2_InProgress_X_401_407_421_494"), tsk_fsm_entry.prototype.CreateAlways(tsip_dialog_generic_states_e.INPROGRESS, tsip_dialog_generic_actions_e.I_300_to_699, tsip_dialog_generic_states_e.TERMINATED, tsip_dialog_generic_InProgress_2_Terminated_X_300_to_699, "tsip_dialog_generic_InProgress_2_Terminated_X_300_to_699"), tsk_fsm_entry.prototype.CreateAlways(tsip_dialog_generic_states_e.INPROGRESS, tsip_dialog_generic_actions_e.CANCEL, tsip_dialog_generic_states_e.TERMINATED, tsip_dialog_generic_InProgress_2_Terminated_X_cancel, "tsip_dialog_generic_InProgress_2_Terminated_X_cancel"), tsk_fsm_entry.prototype.CreateAlways(tsip_dialog_generic_states_e.INPROGRESS, tsip_dialog_generic_actions_e.SHUTDOWN, tsip_dialog_generic_states_e.TERMINATED, null, "tsip_dialog_generic_InProgress_2_Terminated_X_shutdown"), tsk_fsm_entry.prototype.Create(tsip_dialog_generic_states_e.INCOMING, tsip_dialog_generic_actions_e.ACCEPT, __tsip_dialog_generic_cond_is_dialogless, tsip_dialog_generic_states_e.TERMINATED, tsip_dialog_generic_Incoming_2_Terminated_X_accept, "tsip_dialog_generic_Incoming_2_Terminated_X_accept"), tsk_fsm_entry.prototype.Create(tsip_dialog_generic_states_e.INCOMING, tsip_dialog_generic_actions_e.ACCEPT, __tsip_dialog_generic_cond_is_dialogfull, tsip_dialog_generic_states_e.CONNECTED, tsip_dialog_generic_Incoming_2_Connected_X_accept, "tsip_dialog_generic_Incoming_2_Connected_X_accept"), tsk_fsm_entry.prototype.CreateAlways(tsip_dialog_generic_states_e.INCOMING, tsip_dialog_generic_actions_e.REJECT, tsip_dialog_generic_states_e.TERMINATED, tsip_dialog_generic_Incoming_2_Terminated_X_reject, "tsip_dialog_generic_Incoming_2_Terminated_X_reject"), tsk_fsm_entry.prototype.CreateAlwaysNothing(tsip_dialog_generic_states_e.INCOMING, "tsip_dialog_generic_Incoming_2_Incoming_X_any"), tsk_fsm_entry.prototype.Create(tsk_fsm.prototype.__i_state_any, tsip_dialog_generic_actions_e.HANGUP, __tsip_dialog_generic_cond_not_silent_hangup, tsip_dialog_generic_states_e.INPROGRESS, __tsip_dialog_generic_Any_2_InProgress_X_hangup, "tsip_dialog_generic_Any_2_InProgress_X_hangup"), tsk_fsm_entry.prototype.Create(tsk_fsm.prototype.__i_state_any, tsip_dialog_generic_actions_e.HANGUP, __tsip_dialog_generic_cond_silent_hangup, tsip_dialog_generic_states_e.TERMINATED, null, "tsip_dialog_generic_Any_2_InProgress_X_silenthangup"), tsk_fsm_entry.prototype.Create(tsk_fsm.prototype.__i_state_any, tsip_dialog_generic_actions_e.SHUTDOWN, __tsip_dialog_generic_cond_not_silent_shutdown, tsip_dialog_generic_states_e.INPROGRESS, __tsip_dialog_generic_Any_2_InProgress_X_shutdown, "tsip_dialog_generic_Any_2_InProgress_X_shutdown"), tsk_fsm_entry.prototype.Create(tsk_fsm.prototype.__i_state_any, tsip_dialog_generic_actions_e.SHUTDOWN, __tsip_dialog_generic_cond_silent_shutdown, tsip_dialog_generic_states_e.TERMINATED, null, "tsip_dialog_generic_Any_2_InProgress_X_silentshutdown"), tsk_fsm_entry.prototype.CreateAlways(tsk_fsm.prototype.__i_state_any, tsip_dialog_generic_actions_e.SHUTDOWN_TIMEDOUT, tsip_dialog_generic_states_e.TERMINATED, null, "tsip_dialog_generic_shutdown_timedout"), tsk_fsm_entry.prototype.CreateAlways(tsk_fsm.prototype.__i_state_any, tsip_dialog_generic_actions_e.TRANSPORT_ERROR, tsip_dialog_generic_states_e.TERMINATED, tsip_dialog_generic_Any_2_Terminated_X_transportError, "tsip_dialog_generic_Any_2_Terminated_X_transportError"), tsk_fsm_entry.prototype.CreateAlways(tsk_fsm.prototype.__i_state_any, tsip_dialog_generic_actions_e.ERROR, tsip_dialog_generic_states_e.TERMINATED, tsip_dialog_generic_Any_2_Terminated_X_Error, "tsip_dialog_generic_Any_2_Terminated_X_Error")) } tsip_dialog_generic.prototype.signal_ao = function(a, c, b) { var d; switch (this.e_type) { case tsip_dialog_type_e.MESSAGE: var d = new tsip_event_message(this.get_session(), a, c, b, tsip_event_message_type_e.AO_MESSAGE); return d.signal(); case tsip_dialog_type_e.PUBLISH: var d = new tsip_event_publish(this.get_session(), a, c, b, tsip_event_publish_type_e.AO_PUBLISH); return d.signal(); case tsip_dialog_type_e.SUBSCRIBE: var d = new tsip_event_subscribe(this.get_session(), a, c, b, tsip_event_subscribe_type_e.AO_SUBSCRIBE); return d.signal() } tsk_utils_log_error("not implemented"); return -1 }; tsip_dialog_generic.prototype.signal_i = function(a, c, b) { var d; switch (this.e_type) { case tsip_dialog_type_e.MESSAGE: if (b.is_message()) { var d = new tsip_event_message(this.get_session(), a, c, b, tsip_event_message_type_e.I_MESSAGE); return d.signal() } break; case tsip_dialog_type_e.SUBSCRIBE: if (b.is_notify()) { var d = new tsip_event_subscribe(this.get_session(), a, c, b, tsip_event_subscribe_type_e.I_NOTIFY); return d.signal() } break } tsk_utils_log_error("not implemented"); return -1 }; function __tsip_dialog_generic_timer_callback(b, a) { var c = -1; if (b) { if (b.o_timerRefresh == a) { switch (b.e_type) { case tsip_dialog_type_e.PUBLISH: c = b.fsm_act(tsip_dialog_generic_actions_e.O_PUBLISH, null, null); break; case tsip_dialog_type_e.SUBSCRIBE: c = b.fsm_act(tsip_dialog_generic_actions_e.O_SUBSCRIBE, null, null); break } } else { if (b.o_timerShutdown == a) { c = b.fsm_act(tsip_dialog_generic_actions_e.SHUTDOWN, null, null) } } } return c } function __tsip_dialog_generic_event_callback(a, b, c) { var d = -1; switch (b) { case tsip_dialog_event_type_e.I_MSG: if (c) { if (c.is_response()) { if (c.is_1xx()) { d = a.fsm_act(tsip_dialog_generic_actions_e.I_1XX, c, null) } else { if (c.is_2xx()) { d = a.fsm_act(tsip_dialog_generic_actions_e.I_2XX, c, null) } else { if (c.is_response_xxx(401) || c.is_response_xxx(407) || c.is_response_xxx(421) || c.is_response_xxx(494)) { d = a.fsm_act(tsip_dialog_generic_actions_e.I_401_407_421_494, c, null) } else { if (c.is_response_xxx(423)) { d = a.fsm_act(tsip_dialog_generic_actions_e.I_423, c, null) } else { if (c.is_3456()) { d = a.fsm_act(tsip_dialog_generic_actions_e.I_300_to_699, c, null) } else { d = a.fsm_act(tsip_dialog_generic_actions_e.ERROR, c, null) } } } } } } else { if (c.is_message()) { d = a.fsm_act(tsip_dialog_generic_actions_e.I_MESSAGE, c, null) } else { if (c.is_options()) { d = a.fsm_act(tsip_dialog_generic_actions_e.I_OPTIONS, c, null) } else { if (c.is_notify()) { d = a.fsm_act(tsip_dialog_generic_actions_e.I_NOTIFY, c, null) } else { if (c.is_subscribe()) { d = a.fsm_act(tsip_dialog_generic_actions_e.I_SUBSCRIBE, c, null) } else { if (c.is_info()) { d = a.fsm_act(tsip_dialog_generic_actions_e.I_INFO, c, null) } else { if (c.is_publish()) { d = a.fsm_act(tsip_dialog_generic_actions_e.I_PUBLISH, c, null) } } } } } } } } break; case tsip_dialog_event_type_e.CANCELED: d = a.fsm_act(tsip_dialog_generic_actions_e.CANCEL, c, null); break; case tsip_dialog_event_type_e.TERMINATED: case tsip_dialog_event_type_e.TIMEDOUT: case tsip_dialog_event_type_e.ERROR: case tsip_dialog_event_type_e.TRANSPORT_ERROR: d = a.fsm_act(tsip_dialog_generic_actions_e.TRANSPORT_ERROR, c, null); break } return d } function __tsip_dialog_generic_cond_is_dialogless(b, a) { switch (b.e_type) { case tsip_dialog_type_e.INFO: case tsip_dialog_type_e.MESSAGE: case tsip_dialog_type_e.OPTIONS: return true; default: return false } } function __tsip_dialog_generic_cond_is_dialogfull(b, a) { return !__tsip_dialog_generic_cond_is_dialogless(b, a) } function __tsip_dialog_generic_cond_is_resp2message(b, a) { return a.is_response_to_message() } function __tsip_dialog_generic_cond_is_message(b, a) { return a.is_message() } function __tsip_dialog_generic_cond_is_disconnecting(b, a) { return b.b_disconnecting } function __tsip_dialog_generic_cond_is_connecting(b, a) { return !__tsip_dialog_generic_cond_is_disconnecting(b, a) } function __tsip_dialog_generic_cond_silent_hangup(b, a) { return b.o_session.b_silent_hangup } function __tsip_dialog_generic_cond_not_silent_hangup(b, a) { return !__tsip_dialog_generic_cond_silent_hangup(b, a) } function __tsip_dialog_generic_cond_silent_shutdown(b, a) { return __tsip_dialog_generic_cond_silent_hangup(b, a) } function __tsip_dialog_generic_cond_not_silent_shutdown(b, a) { return !__tsip_dialog_generic_cond_silent_shutdown(b, a) } function tsip_dialog_generic_InProgress_2_InProgress_X_1xx(a) { var c = a[0]; var b = a[1]; return c.signal_ao(b.get_response_code(), b.get_response_phrase(), b) } function tsip_dialog_generic_InProgress_2_Terminated_X_2xx(a) { var c = a[0]; var b = a[1]; return c.signal_ao(b.get_response_code(), b.get_response_phrase(), b) } function tsip_dialog_generic_InProgress_2_Connected_X_2xx(b) { var e = b[0]; var c = b[1]; var a = (e.e_state == tsip_dialog_state_e.INITIAL); if ((i_ret = e.update_with_response(c)) != 0) { return i_ret } if (e.e_type == tsip_dialog_type_e.PUBLISH) { var d; if ((d = c.get_header(tsip_header_type_e.SIP_ETag))) { if (d.s_value) { e.s_etag = d.s_value } else { tsk_utils_log_warn("SIP-ETag header without value: Is it a bug?") } } } e.set_action_curr(null); e.i_timerRefresh = e.get_newdelay(c); e.timer_schedule("generic", "Refresh"); e.signal_ao(c.get_response_code(), c.get_response_phrase(), c); if (a) { e.signal(tsip_event_code_e.DIALOG_CONNECTED, "Connected") } return 0 } function tsip_dialog_generic_InProgress_2_InProgress_X_401_407_421_494(a) { var d = a[0]; var b = a[1]; var c; if ((c = d.update_with_response(b))) { d.signal_ao(b.get_response_code(), b.get_response_phrase(), b); d.set_last_error(b.get_response_code(), b.get_response_phrase(), b); return c } switch (d.e_type) { case tsip_dialog_type_e.MESSAGE: return d.send_message(); case tsip_dialog_type_e.PUBLISH: return d.send_publish(); case tsip_dialog_type_e.SUBSCRIBE: return d.send_subscribe() } return 0 } function tsip_dialog_generic_InProgress_2_Terminated_X_300_to_699(a) { var c = a[0]; var b = a[1]; c.set_last_error(b.get_response_code(), b.get_response_phrase(), b); return c.signal_ao(b.get_response_code(), b.get_response_phrase(), b) } function tsip_dialog_generic_InProgress_2_Terminated_X_cancel(a) { tsk_utils_log_error("Not implemented"); return 0 } function tsip_dialog_generic_Incoming_2_Terminated_X_accept(a) { var e = a[0]; var b = a[2]; if (!e.o_last_iMessage) { tsk_utils_log_error("Invalid state") } else { var c; var d = -1; e.set_action_curr(b); if ((c = e.response_new(200, "OK", e.o_last_iMessage))) { if ((d = tsip_dialog.prototype.ApplyAction(c, b)) == 0) { if ((d = e.response_send(c))) { tsk_utils_log_error("Failed to send SIP response."); return d } } } else { tsk_utils_log_error("Failed to create SIP response."); return -1 } } return 0 } function tsip_dialog_generic_Incoming_2_Connected_X_accept(a) { tsk_utils_log_error("Not implemented"); return 0 } function tsip_dialog_generic_Incoming_2_Terminated_X_reject(a) { tsk_utils_log_error("Not implemented"); return 0 } function __tsip_dialog_generic_Any_2_InProgress_X_hangup(a) { var c = a[0]; var b = a[2]; c.set_action_curr(b); c.signal(tsip_event_code_e.DIALOG_TERMINATING, "Disconnecting..."); c.b_disconnecting = true; switch (c.e_type) { case tsip_dialog_type_e.PUBLISH: return c.send_publish(); case tsip_dialog_type_e.SUBSCRIBE: return c.send_subscribe() } return 0 } function __tsip_dialog_generic_Any_2_InProgress_X_shutdown(a) { var b = a[0]; b.timer_schedule("generic", "Shutdown"); b.signal(tsip_event_code_e.DIALOG_TERMINATING, "Disconnecting..."); b.b_disconnecting = true; switch (b.e_type) { case tsip_dialog_type_e.PUBLISH: return b.send_publish(); case tsip_dialog_type_e.SUBSCRIBE: return b.send_subscribe() } return 0 } function tsip_dialog_generic_Any_2_Terminated_X_transportError(a) { tsk_utils_log_error("Not implemented"); return 0 } function tsip_dialog_generic_Any_2_Terminated_X_Error(a) { tsk_utils_log_error("Not implemented"); return 0 } function __tsip_dialog_generic_onterm(a) { tsk_utils_log_info("=== " + a.e_type.s_name + " Dialog terminated ==="); a.timer_cancel("Refresh"); a.timer_cancel("Shutdown"); a.signal(tsip_event_code_e.DIALOG_TERMINATED, a.last_error.s_phrase ? a.last_error.s_phrase : "Disconnected", a.last_error.o_message); return a.deinit() } if (!window.__b_release_mode) { tsip_api_add_js_scripts("head", "src/tinySIP/src/dialogs/tsip_dialog_generic__message.js", "src/tinySIP/src/dialogs/tsip_dialog_generic__publish.js", "src/tinySIP/src/dialogs/tsip_dialog_generic__subscribe.js") } tsip_dialog_generic.prototype.init_message = function() { this.o_fsm.set(tsk_fsm_entry.prototype.CreateAlways(tsip_dialog_generic_states_e.STARTED, tsip_dialog_generic_actions_e.O_MESSAGE, tsip_dialog_generic_states_e.INPROGRESS, tsip_dialog_generic_Started_2_InProgress_X_oMessage, "tsip_dialog_generic_Started_2_InProgress_X_oMessage"), tsk_fsm_entry.prototype.CreateAlways(tsip_dialog_generic_states_e.STARTED, tsip_dialog_generic_actions_e.I_MESSAGE, tsip_dialog_generic_states_e.INCOMING, tsip_dialog_generic_Started_2_Incoming_X_iMessage, "tsip_dialog_generic_Started_2_Incoming_X_iMessage")) }; tsip_dialog_generic.prototype.send_message = function() { var a; var b = -1; if ((a = this.request_new("MESSAGE"))) { if (this.get_action_curr()) { if ((b = tsip_dialog.prototype.ApplyAction(a, this.get_action_curr())) == 0) { b = this.request_send(a) } } } return b }; function tsip_dialog_generic_Started_2_InProgress_X_oMessage(a) { var c = a[0]; var b = a[2]; c.b_running = true; c.set_action_curr(b); return c.send_message() } function tsip_dialog_generic_Started_2_Incoming_X_iMessage(a) { var c = a[0]; var b = a[1]; c.signal_i(tsip_event_code_e.DIALOG_REQUEST_INCOMING, "Incoming Request", b); c.o_last_iMessage = b; return 0 } tsip_dialog_generic.prototype.init_publish = function() { this.s_etag = null; this.o_fsm.set(tsk_fsm_entry.prototype.CreateAlways(tsk_fsm.prototype.__i_state_any, tsip_dialog_generic_actions_e.O_PUBLISH, tsip_dialog_generic_states_e.INPROGRESS, tsip_dialog_generic_Any_2_InProgress_X_oPublish, "tsip_dialog_generic_Any_2_InProgress_X_oPublish")) }; tsip_dialog_generic.prototype.send_publish = function() { var b; var c = -1; if (this.b_disconnecting) { this.i_expires = 0 } if ((b = this.request_new("PUBLISH"))) { var a = this.get_action_curr(); if (a && (c = tsip_dialog.prototype.ApplyAction(b, a))) { return c } if (this.s_etag) { b.add_header(new tsip_header_SIP_If_Match(this.s_etag)) } c = this.request_send(b) } return c }; function tsip_dialog_generic_Any_2_InProgress_X_oPublish(a) { var c = a[0]; var b = a[2]; if (!c.b_running) { c.b_running = true } c.set_action_curr(b); if (c.e_state == tsip_dialog_state_e.INITIAL) { c.signal(tsip_event_code_e.DIALOG_CONNECTING, "Connecting...") } return c.send_publish() } tsip_dialog_generic.prototype.init_subscribe = function() { this.s_etag = null; this.o_fsm.set(tsk_fsm_entry.prototype.CreateAlways(tsk_fsm.prototype.__i_state_any, tsip_dialog_generic_actions_e.O_SUBSCRIBE, tsip_dialog_generic_states_e.INPROGRESS, tsip_dialog_generic_Any_2_InProgress_X_oSubscribe, "tsip_dialog_generic_Any_2_InProgress_X_oSubscribe"), tsk_fsm_entry.prototype.CreateAlways(tsk_fsm.prototype.__i_state_any, tsip_dialog_generic_actions_e.I_NOTIFY, tsk_fsm.prototype.__i_state_any, tsip_dialog_generic_Any_2_Any_X_iNotify, "tsip_dialog_generic_Any_2_Any_X_iNotify")) }; tsip_dialog_generic.prototype.send_subscribe = function() { var b; var c = -1; if (this.b_disconnecting) { this.i_expires = 0 } if ((b = this.request_new("SUBSCRIBE"))) { var a = this.get_action_curr(); if (a && (c = tsip_dialog.prototype.ApplyAction(b, a))) { return c } c = this.request_send(b) } return c }; function tsip_dialog_generic_Any_2_InProgress_X_oSubscribe(a) { var c = a[0]; var b = a[2]; if (!c.b_running) { c.b_running = true } c.set_action_curr(b); if (c.e_state == tsip_dialog_state_e.INITIAL) { c.signal(tsip_event_code_e.DIALOG_CONNECTING, "Connecting...") } return c.send_subscribe() } function tsip_dialog_generic_Any_2_Any_X_iNotify(a) { var e = a[0]; var b = a[1]; var c; var d = -1; if ((c = e.response_new(200, "OK", b))) { d = e.response_send(c) } e.i_timerRefresh = e.get_newdelay(b); e.timer_schedule("generic", "Refresh"); e.signal_i(tsip_event_code_e.DIALOG_REQUEST_INCOMING, "Incoming NOTIFY", b); return d } tsip_dialog_invite.prototype = Object.create(tsip_dialog.prototype); tsip_dialog_invite.prototype.__b_debug_state_machine = true; tsip_dialog_invite.prototype.__i_lo_sdp_request_timeout = 50000000; var tsip_dialog_invite_next_offer_type_e = { NONE: 0, INVITE: 1, UPDATE: 2, SUCCESS: 3 }; var tsip_dialog_invite_actions_e = { ACCEPT: tsip_action_type_e.ACCEPT, REJECT: tsip_action_type_e.HANGUP, DTMF_SEND: tsip_action_type_e.DTMF_SEND, MUTE: tsip_action_type_e.MUTE, MSRP_SEND_MSG: tsip_action_type_e.LARGE_MESSAGE, O_INVITE: tsip_action_type_e.INVITE, O_CANCEL: tsip_action_type_e.CANCEL, O_HOLD: tsip_action_type_e.HOLD, O_RESUME: tsip_action_type_e.RESUME, O_ECT: tsip_action_type_e.ECT, I_ECT_ACCEPT: tsip_action_type_e.ECT_ACCEPT, I_ECT_REJECT: tsip_action_type_e.ECT_REJECT, I_ECT_LNOTIFY: tsip_action_type_e.ECT_NOTIFY, O_INFO: tsip_action_type_e.INFO, O_BYE: tsip_action_type_e.HANGUP, O_SHUTDOWN: tsip_action_type_e.SHUTDOWN, I_INVITE: 10001, O_UPDATE: 10002, I_UPDATE: 10003, I_CANCEL: 10004, I_PRACK: 10005, O_PRACK: 10006, I_ACK: 10007, O_ACK: 10008, I_OPTIONS: 10009, O_OPTIONS: 10010, I_BYE: 10011, I_REFER: 10012, I_INFO: 10013, I_NOTIFY: 10014, TIMER_100REL: 20001, TIMER_REFRESH: 20002, TIMER_RSVP: 20003, TIMER_LO_SDP_REQUEST: 20004, I_1XX: 30001, I_2XX: 30002, I_300_to_699: 30003, I_401_407: 30004, i_422: 30005, SHUTDOWN_TIMEDOUT: 40001, TRANSPORT_ERROR: 40002, ERROR: 40003 }; var tsip_dialog_invite_states_e = { STARTED: 1, OUTGOING: 2, INCOMING: 3, TRYING: 4, RINGING: 5, CANCELLING: 6, INPROGRESS: 7, HOLDING: 20, RESUMING: 21, O_ECT_INPROGRESS: 40, I_ECT_INPROGRESS: 41, I_ECT_REQUESTED: 42, CONNECTED: 60, TERMINATED: 61 }; function tsip_dialog_invite(b, a) { tsip_dialog.call(this); this.o_last_oInvite = null; this.o_wait_oMessage = null; this.o_last_iOffer = null; this.o_last_iRefer = null; this.o_ss_transf = null; this.e_next_offer_type = tsip_dialog_invite_next_offer_type_e.NONE; this.i_rseq = 0; this.b_support_update = false; this.supported = {}; this.supported.b_100rel = b.media.b_100rel; this.supported.b_norefsub = true; this.supported.b_refer_sub = true; this.supported.b_timer = (b.media.timers.i_timeout > 0); this.require = {}; this.require.b_100rel = false; this.require.b_norefsub = false; this.require.b_timer = false; this.hold = {}; this.hold.b_local = false; this.hold.b_remote = false; this.init(tsip_dialog_type_e.INVITE, a, b, tsip_dialog_invite_states_e.STARTED, tsip_dialog_invite_states_e.TERMINATED); this.set_callback(__tsip_dialog_invite_event_callback); this.o_fsm.set_debug_enabled(tsip_dialog_invite.prototype.__b_debug_state_machine); this.o_fsm.set_onterm_callback(__tsip_dialog_invite_onterm, this); this.o_msession_mgr = null; this.b_is_client = false; this.b_is_transf = false; this.o_timerShutdown = null; this.i_timerShutdown = (tsip_dialog.prototype.__i_timer_shutdown >> 1); this.stimers = {}; this.stimers.i_timeout = b.media.timers.i_timeout; this.stimers.s_refresher = null; this.stimers.i_minse = 0; this.stimers.b_is_refresher = false; this.o_timer100Rel = null; this.i_timer100Rel = 0; this.o_timerSession = null; this.o_timerShutdown = null; this.i_timerShutdown = tsip_dialog.prototype.__i_timer_shutdown; this.o_timerLoSdpRequest = null; this.i_timerLoSdpRequest = tsip_dialog_invite.prototype.__i_lo_sdp_request_timeout; this.o_fsm.set(tsk_fsm_entry.prototype.CreateAlwaysNothing(tsip_dialog_invite_states_e.STARTED, "tsip_dialog_invite_Started_2_Started_X_any"), tsk_fsm_entry.prototype.CreateAlways(tsip_dialog_invite_states_e.CONNECTED, tsip_dialog_invite_actions_e.DTMF_SEND, tsip_dialog_invite_states_e.CONNECTED, x0000_Connected_2_Connected_X_oDTMF, "x0000_Connected_2_Connected_X_oDTMF"), tsk_fsm_entry.prototype.CreateAlways(tsip_dialog_invite_states_e.CONNECTED, tsip_dialog_invite_actions_e.MSRP_SEND_MSG, tsip_dialog_invite_states_e.CONNECTED, x0000_Connected_2_Connected_X_oLMessage, "x0000_Connected_2_Connected_X_oLMessage"), tsk_fsm_entry.prototype.CreateAlways(tsip_dialog_invite_states_e.CONNECTED, tsip_dialog_invite_actions_e.I_ACK, tsip_dialog_invite_states_e.CONNECTED, x0000_Connected_2_Connected_X_iACK, "x0000_Connected_2_Connected_X_iACK"), tsk_fsm_entry.prototype.CreateAlways(tsip_dialog_invite_states_e.CONNECTED, tsip_dialog_invite_actions_e.I_INVITE, tsip_dialog_invite_states_e.CONNECTED, x0000_Connected_2_Connected_X_iINVITEorUPDATE, "x0000_Connected_2_Connected_X_iINVITE"), tsk_fsm_entry.prototype.CreateAlways(tsip_dialog_invite_states_e.CONNECTED, tsip_dialog_invite_actions_e.I_UPDATE, tsip_dialog_invite_states_e.CONNECTED, x0000_Connected_2_Connected_X_iINVITEorUPDATE, "x0000_Connected_2_Connected_X_iUPDATE"), tsk_fsm_entry.prototype.CreateAlways(tsip_dialog_invite_states_e.CONNECTED, tsip_dialog_invite_actions_e.O_INVITE, tsip_dialog_invite_states_e.CONNECTED, x0000_Connected_2_Connected_X_oINVITE, "x0000_Connected_2_Connected_X_oINVITE"), tsk_fsm_entry.prototype.CreateAlways(tsk_fsm.prototype.__i_state_any, tsip_dialog_invite_actions_e.O_BYE, tsip_dialog_invite_states_e.TRYING, x0000_Any_2_Trying_X_oBYE, "x0000_Any_2_Trying_X_oBYE"), tsk_fsm_entry.prototype.CreateAlways(tsk_fsm.prototype.__i_state_any, tsip_dialog_invite_actions_e.I_BYE, tsip_dialog_invite_states_e.TERMINATED, x0000_Any_2_Terminated_X_iBYE, "x0000_Any_2_Terminated_X_iBYE"), tsk_fsm_entry.prototype.Create(tsk_fsm.prototype.__i_state_any, tsip_dialog_invite_actions_e.I_300_to_699, __tsip_dialog_invite_cond_is_resp2bye, tsip_dialog_invite_states_e.TERMINATED, null, "x0000_Any_2_Terminated_X_i3xxTOi6xxBYE"), tsk_fsm_entry.prototype.Create(tsk_fsm.prototype.__i_state_any, tsip_dialog_invite_actions_e.I_2XX, __tsip_dialog_invite_cond_is_resp2bye, tsip_dialog_invite_states_e.TERMINATED, null, "x0000_Any_2_Terminated_X_i2xxBYE"), tsk_fsm_entry.prototype.CreateAlways(tsk_fsm.prototype.__i_state_any, tsip_dialog_invite_actions_e.O_SHUTDOWN, tsip_dialog_invite_states_e.TRYING, x0000_Any_2_Trying_X_shutdown, "x0000_Any_2_Trying_X_shutdown"), tsk_fsm_entry.prototype.CreateAlways(tsk_fsm.prototype.__i_state_any, tsip_dialog_invite_actions_e.SHUTDOWN_TIMEDOUT, tsip_dialog_invite_states_e.TERMINATED, null, "tsip_dialog_invite_shutdown_timedout"), tsk_fsm_entry.prototype.CreateAlways(tsk_fsm.prototype.__i_state_any, tsip_dialog_invite_actions_e.MUTE, tsk_fsm.prototype.__i_state_any, x0000_Any_2_Any_X_noOps, "x0000_Any_2_Any_X_noOps"), tsk_fsm_entry.prototype.CreateAlways(tsk_fsm.prototype.__i_state_any, tsip_dialog_invite_actions_e.I_1XX, tsk_fsm.prototype.__i_state_any, x0000_Any_2_Any_X_i1xx, "x0000_Any_2_Any_X_i1xx"), tsk_fsm_entry.prototype.CreateAlways(tsk_fsm.prototype.__i_state_any, tsip_dialog_invite_actions_e.O_INFO, tsk_fsm.prototype.__i_state_any, x0000_Any_2_Any_X_oINFO, "x0000_Any_2_Any_X_oINFO"), tsk_fsm_entry.prototype.CreateAlways(tsk_fsm.prototype.__i_state_any, tsip_dialog_invite_actions_e.I_INFO, tsk_fsm.prototype.__i_state_any, x0000_Any_2_Any_X_iINFO, "x0000_Any_2_Any_X_iINFO"), tsk_fsm_entry.prototype.CreateAlways(tsk_fsm.prototype.__i_state_any, tsip_dialog_invite_actions_e.I_PRACK, tsk_fsm.prototype.__i_state_any, x0000_Any_2_Any_X_iPRACK, "x0000_Any_2_Any_X_iPRACK"), tsk_fsm_entry.prototype.CreateAlways(tsk_fsm.prototype.__i_state_any, tsip_dialog_invite_actions_e.I_OPTIONS, tsk_fsm.prototype.__i_state_any, x0000_Any_2_Any_X_iOPTIONS, "x0000_Any_2_Any_X_iOPTIONS"), tsk_fsm_entry.prototype.Create(tsk_fsm.prototype.__i_state_any, tsip_dialog_invite_actions_e.I_2XX, __tsip_dialog_invite_cond_is_resp2invite, tsk_fsm.prototype.__i_state_any, x0000_Any_2_Any_X_i2xxINVITEorUPDATE, "x0000_Any_2_Any_X_i2xxINVITE"), tsk_fsm_entry.prototype.Create(tsk_fsm.prototype.__i_state_any, tsip_dialog_invite_actions_e.I_2XX, __tsip_dialog_invite_cond_is_resp2update, tsk_fsm.prototype.__i_state_any, x0000_Any_2_Any_X_i2xxINVITEorUPDATE, "x0000_Any_2_Any_X_i2xxUPDATE"), tsk_fsm_entry.prototype.Create(tsk_fsm.prototype.__i_state_any, tsip_dialog_invite_actions_e.I_401_407, __tsip_dialog_invite_cond_is_resp2invite, tsk_fsm.prototype.__i_state_any, x0000_Any_2_Any_X_i401_407_INVITEorUPDATE, "x0000_Any_2_Any_X_i401_407_INVITE"), tsk_fsm_entry.prototype.Create(tsk_fsm.prototype.__i_state_any, tsip_dialog_invite_actions_e.I_401_407, __tsip_dialog_invite_cond_is_resp2update, tsk_fsm.prototype.__i_state_any, x0000_Any_2_Any_X_i401_407_INVITEorUPDATE, "x0000_Any_2_Any_X_i401_407_UPDATE"), tsk_fsm_entry.prototype.Create(tsk_fsm.prototype.__i_state_any, tsip_dialog_invite_actions_e.I_2XX, __tsip_dialog_invite_cond_is_resp2prack, tsk_fsm.prototype.__i_state_any, null, "x0000_Any_2_Any_X_i2xxPRACK"), tsk_fsm_entry.prototype.Create(tsk_fsm.prototype.__i_state_any, tsip_dialog_invite_actions_e.I_2XX, __tsip_dialog_invite_cond_is_resp2info, tsk_fsm.prototype.__i_state_any, null, "x0000_Any_2_Any_X_i2xxINFO"), tsk_fsm_entry.prototype.CreateAlways(tsk_fsm.prototype.__i_state_any, tsip_dialog_invite_actions_e.TIMER_LO_SDP_REQUEST, tsip_dialog_invite_states_e.TERMINATED, x9997_Any_2_Any_X_LoSdpRequestTimeout, "x9997_Any_2_Any_X_LoSdpRequestTimeout"), tsk_fsm_entry.prototype.CreateAlways(tsk_fsm.prototype.__i_state_any, tsip_dialog_invite_actions_e.TRANSPORT_ERROR, tsip_dialog_invite_states_e.TERMINATED, x9998_Any_2_Terminated_X_transportError, "x9998_Any_2_Terminated_X_transportError"), tsk_fsm_entry.prototype.CreateAlways(tsk_fsm.prototype.__i_state_any, tsip_dialog_invite_actions_e.ERROR, tsip_dialog_invite_states_e.TERMINATED, x9999_Any_2_Terminated_X_Error, "x9999_Any_2_Terminated_X_Error")); this.init_client(); this.init_server(); this.init_hold(); this.init_ect() } tsip_dialog_invite.prototype.signal_invite = function(c, a, d, b) { var e = new tsip_event_invite(this.get_session(), a, d, b, c); return e.signal() }; tsip_dialog_invite.prototype.send_invite = function(a) { return this.send_offer(true, a) }; tsip_dialog_invite.prototype.send_update = function(a) { return this.send_offer(false, a) }; tsip_dialog_invite.prototype.send_offer = function(f, c) { var e = -1; var d = null; var g = false; if (!f && c) { tsk_utils_log_warn("ACK is need to ensure the media session") } if ((d = this.request_new(f ? "INVITE" : "UPDATE"))) { if (this.o_action_curr) { tsip_dialog.prototype.ApplyAction(d, this.o_action_curr) } if ((c || f) || ((this.o_msession_mgr && this.o_msession_mgr.b_state_changed) || (this.e_state == tsip_dialog_state_e.INITIAL))) { if (!this.o_action_curr || !this.o_action_curr.o_payload) { var b = this.o_msession_mgr.get_lo(); g = (b == null); if (b) { var a = b.toString(); d.add_content(new String(a), "application/sdp") } } } if (this.stimers.i_timeout) { if (this.require.b_timer) { d.add_headers(new tsip_header_Session_Expires(this.stimers.i_timeout, !this.stimers.b_is_refresher), new tsip_header_Require("timer")) } else { if (this.supported.b_timer) { d.add_headers(new tsip_header_Session_Expires(this.stimers.i_timeout, !this.stimers.b_is_refresher), new tsip_header_Supported("timer")) } } } if (this.stimers.i_minse) { d.add_headers(new tsip_header_Min_SE(this.stimers.i_minse)) } if (this.require.b_100rel) { d.add_headers(new tsip_header_Require("100rel")) } else { if (this.supported.b_100rel) { d.add_headers(new tsip_header_Supported("100rel")) } } if (g) { e = 0; this.o_wait_oMessage = d; this.timer_schedule("invite", "LoSdpRequest") } else { e = this.request_send(d); if (f && e == 0) { this.o_last_oInvite = d } } } return e }; tsip_dialog_invite.prototype.send_ack = function(d) { var e = -1; var c = null; var f = false; if ((c = this.request_new("ACK"))) { if (this.b_is_client && (this.o_last_oInvite && !this.o_last_oInvite.has_content())) { var b = this.o_msession_mgr.get_lo(); f = (b == null); if (b) { var a = b.toString(); c.add_content(new String(a), "application/sdp") } if (!this.o_msession_mgr.is_started() && (this.o_msession_mgr.has_lo() && this.o_msession_mgr.has_ro())) { e = this.o_msession_mgr.start() } } c.o_hdr_CSeq.i_seq = d.o_hdr_CSeq.i_seq; if (f) { this.o_wait_oMessage = c; this.timer_schedule("invite", "LoSdpRequest"); return 0 } else { return this.request_send(c) } } return e }; tsip_dialog_invite.prototype.send_prack = function(g) { if (!g || !g.o_hdr_CSeq) { tsk_utils_log_error("Invalid parameter"); return -1 } var e = -1; var c = null; var d; var f = false; if ((d = g.get_header(tsip_header_type_e.RSeq))) { if (self.i_rseq && (d.i_value <= this.i_rseq)) { tsk_utils_log_warn("1xx.RSeq value is not one higher than lastINVITE.RSeq"); return 0 } this.i_rseq = d.i_value } if (!(c = this.request_new("PRACK"))) { tsk_utils_log_error("Failed to create PRACK request"); return -2 } c.add_header(new tsip_header_RAck(this.i_rseq, g.o_hdr_CSeq.i_seq, g.o_hdr_CSeq.s_method)); if (this.b_is_client && (this.o_last_oInvite && !this.o_last_oInvite.has_content())) { var b = this.o_msession_mgr.get_lo(); f = (b == null); if (b) { var a = b.toString(); c.add_content(new String(a), "application/sdp") } } if (f) { this.o_wait_oMessage = c; this.timer_schedule("invite", "LoSdpRequest"); return 0 } else { return this.request_send(c) } }; tsip_dialog_invite.prototype.send_response = function(f, b, e, j) { var a; var h = -1; var d = false; if ((a = this.response_new(b, e, f))) { if (f.is_invite() || f.is_update()) { if (this.require.b_timer) { a.add_headers(new tsip_header_Require("timer"), new tsip_header_Session_Expires(this.stimers.i_timeout, tsk_string_iequals(this.stimers.s_refresher, "uas"))) } else { if (this.supported.b_timer) { a.add_headers(new tsip_header_Supported("timer"), new tsip_header_Session_Expires(this.stimers.i_timeout, tsk_string_iequals(this.stimers.s_refresher, "uas"))) } } if (this.stimers.i_minse) { a.add_headers(new tsip_header_Min_SE(this.stimers.i_minse)) } if (b == 422) { a.add_headers(new tsip_header_Dummy("Reason", 'SIP; cause=422; text="Session Interval Too Small"')) } if (b == 180 || b == 183) { if (this.require.b_100rel) { if (this.i_rseq == 0) { this.i_rseq = Math.abs((rand() ^ rand()) + 1) } a.add_headers(new tsip_header_Require("100rel"), new tsip_header_RSeq(this.i_rseq)); this.o_last_o1xxrel = a; this.timer_cancel("100Rel"); this.i_timer100Rel = this.get_stack().o_timers.getA(); this.timer_schedule("invite", "100Rel") } } if (this.o_msession_mgr && j) { var c = this.o_msession_mgr.get_lo(); d = (c == null); if (c) { var g = c.toString(); a.add_content(new String(g), "application/sdp") } } a.add_headers(new tsip_header_Dummy("Allow", TSIP_HEADER_ALLOW_DEFAULT)) } else { if (f.is_refer()) { if (this.require.b_norefersub) { a.add_headers(new tsip_header_Require("norefersub")) } if (this.supported.b_norefersub) { a.add_headers(new tsip_header_Supported("norefersub")) } } } if (d) { this.o_wait_oMessage = a; this.timer_schedule("invite", "LoSdpRequest"); return 0 } else { return this.response_send(a) } } return h }; tsip_dialog_invite.prototype.send_error = function(c, a, e, b) { var d; if ((d = this.response_new(a, e, c))) { d.add_headers(new tsip_header_Dummy("Reason", b)); return this.response_send(d) } else { tsk_utils_log_error("Failed to create new message"); return -1 } }; tsip_dialog_invite.prototype.send_bye = function() { var a = -1; var b; if ((b = this.request_new("BYE"))) { a = this.request_send(b) } return a }; tsip_dialog_invite.prototype.send_info = function(a, b) { var d = -1; var c; if ((c = this.request_new("INFO"))) { if (a && b) { c.add_content(new String(a), b) } d = this.request_send(c) } return d }; tsip_dialog_invite.prototype.send_cancel = function() { if (this.o_last_oInvite) { var a; var c; if ((a = new tsip_request("CANCEL", this.o_last_oInvite.line.request.o_uri, null, null, this.o_last_oInvite.o_hdr_Call_ID.s_value, this.o_last_oInvite.o_hdr_CSeq.i_seq))) { a.o_hdr_firstVia = this.o_last_oInvite.o_hdr_firstVia; a.o_hdr_From = this.o_last_oInvite.o_hdr_From; a.o_hdr_To = this.o_last_oInvite.o_hdr_To; for (c = 0; c < this.o_last_oInvite.ao_headers.length; ++c) { switch (this.o_last_oInvite.ao_headers[c].e_type) { case tsip_header_type_e.Route: case tsip_header_type_e.Proxy_Authorization: case tsip_header_type_e.Authorization: a.ao_headers.push(this.o_last_oInvite.ao_headers[c]); break } } if (this.get_stack().network.e_proxy_cscf_type == tsip_transport_type_e.WS || this.get_stack().network.e_proxy_cscf_type == tsip_transport_type_e.WSS) { var b = this.get_stack().__get_proxy_outbound_uri_string(); if (b) { a.add_header(new tsip_header_Dummy("Route", b), true) } } return this.request_send(a) } else { tsk_utils_log_error("Failed to create CANCEL request"); return -2 } } else { tsk_utils_log_warn("There is no INVITE request to cancel"); return 0 } }; tsip_dialog_invite.prototype.notify_parent = function(c) { var b = this.get_layer_dialog().find_by_ssid(this.get_session().i_id_parent); if (b) { var a = new tsip_action(tsip_action_type_e.ECT_NOTIFY); if (a) { return b.fsm_act(a.e_type, c, a) } } else { tsk_utils_log_error("Failed to find parent with id=" + this.get_session().i_id_parent + "") } return -1 }; tsip_dialog_invite.prototype.config_msession_mgr = function(a) { if (a) { a.set(tmedia_session_mgr.prototype.SetParamSession(a.e_type, "ice-servers", this.get_stack().network.ao_ice_servers), tmedia_session_mgr.prototype.SetParamSession(a.e_type, "cache-stream", this.get_stack().network.b_cache_stream), tmedia_session_mgr.prototype.SetParamSession(a.e_type, "bandwidth", this.get_session().media.o_bandwidth), tmedia_session_mgr.prototype.SetParamSession(a.e_type, "video-size", this.get_session().media.o_video_size), tmedia_session_mgr.prototype.SetParamSession(a.e_type, "screencast-windowid", this.get_session().media.screencast.d_window_id)) } }; tsip_dialog_invite.prototype.new_msession_mgr = function(c, d, b, e) { var a = new tmedia_session_mgr(c, d, b, e, __tsip_dialog_invite_media_callback, this); this.config_msession_mgr(a); return a }; tsip_dialog_invite.prototype.process_ro = function(d, c) { var b = null; var g; var f; var a; var e = 0; if (!d) { tsk_utils_log_error("Invalid parameter"); return -1 } if (d.has_content()) { if (tsk_string_iequals("application/sdp", d.get_content_type())) { if (!(b = tsdp_message.prototype.Parse(d.get_content_as_string()))) { tsk_utils_log_error("Failed to parse remote sdp message"); return -2 } } else { tsk_utils_log_error("[" + d.get_content_type() + "] content-type is not supportted"); return -3 } } else { if (this.e_state == tsip_dialog_state_e.INITIAL && d.is_invite()) { this.get_session().media.e_type = tmedia_defaults_get_media_type() } else { return 0 } } a = (this.o_msession_mgr == null); g = this.get_session().media.e_type; f = b ? b.get_media_type() : g; if (!this.o_msession_mgr) { this.get_session().media.e_type = f; this.o_msession_mgr = this.new_msession_mgr(f, this.get_stack().network.s_local_ip, false, (b == null)) } if (b) { if ((e = this.o_msession_mgr.set_ro(b, c))) { tsk_utils_log_error("Failed to set remote offer"); return e } } if (!a && (g != f) && (this.o_msession_mgr.sdp.o_lo && this.o_msession_mgr.sdp.o_ro)) { this.get_session().media.e_type = f; this.signal_invite(tsip_event_invite_type_e.M_UPDATED, d.get_response_code(), d.get_response_phrase(), d) } if (!this.o_msession_mgr.is_started() && (this.o_msession_mgr.has_lo() && this.o_msession_mgr.has_ro())) { e = this.o_msession_mgr.start(); if (e == 0 && this.e_state == tsip_dialog_state_e.EARLY) { this.signal_invite(tsip_event_invite_type_e.M_EARLY_MEDIA, d.get_response_code(), d.get_response_phrase(), d) } } return e }; function __tsip_dialog_invite_timer_callback(b, a) { var c = -1; if (b) { if (b.o_timerSession == a) { c = b.fsm_act(tsip_dialog_invite_actions_e.TIMER_REFRESH, null, null) } else { if (b.o_timer100Rel == a) { c = b.fsm_act(tsip_dialog_invite_actions_e.TIMER_100REL, null, null) } else { if (b.o_timerShutdown == a) { c = b.fsm_act(tsip_dialog_invite_actions_e.SHUTDOWN_TIMEDOUT, null, null) } else { if (b.o_timerLoSdpRequest == a) { c = b.fsm_act(tsip_dialog_invite_actions_e.TIMER_LO_SDP_REQUEST, null, null) } } } } } return c } function __tsip_dialog_invite_media_callback(a, f, e, h) { var g; switch (f) { case tmedia_session_events_e.GET_LO_SUCCESS: a.timer_cancel("LoSdpRequest"); if (a.o_wait_oMessage) { var d = a.o_msession_mgr.get_lo(); var c = null; if (d && (c = d.toString())) { a.o_wait_oMessage.add_content(new String(c), "application/sdp"); if (a.o_wait_oMessage.is_request()) { if (a.o_wait_oMessage.is_ack()) { g = a.get_stack().o_layer_transport.send(null, a.o_wait_oMessage) } else { g = a.request_send(a.o_wait_oMessage); if (g == 0 && a.o_wait_oMessage.is_invite()) { a.o_last_oInvite = a.o_wait_oMessage } } } else { g = a.response_send(a.o_wait_oMessage) } } a.o_wait_oMessage = null } else { if (a.e_state == tsip_dialog_state_e.ESTABLISHED) { if (a.e_next_offer_type == tsip_dialog_invite_next_offer_type_e.SUCCESS && a.o_last_iOffer) { g = a.send_response(a.o_last_iOffer, 200, "OK", true) } else { g = a.send_offer(true, true) } } } if (a.o_msession_mgr && !a.o_msession_mgr.is_started() && (a.o_msession_mgr.has_lo() && a.o_msession_mgr.has_ro())) { g = a.o_msession_mgr.start() } a.e_next_offer_type = tsip_dialog_invite_next_offer_type_e.NONE; break; case tmedia_session_events_e.GET_LO_FAILED: a.timer_cancel("LoSdpRequest"); a.set_last_error(tsip_event_code_e.DIALOG_WEBRTC_ERROR, "Failed to get local SDP offer"); a.e_next_offer_type = tsip_dialog_invite_next_offer_type_e.NONE; var b = new tsip_action(tsip_action_type_e.HANGUP); b.set_line_resp(603, "Failed to get local SDP"); a.hangup(b); break; case tmedia_session_events_e.STREAM_LOCAL_REQUESTED: a.signal_invite(tsip_event_invite_type_e.M_STREAM_LOCAL_REQUESTED, tsip_event_code_e.DIALOG_MEDIA_LOCAL_REQUESTED, "Media Requested", null); break; case tmedia_session_events_e.STREAM_LOCAL_ACCEPTED: a.signal_invite(tsip_event_invite_type_e.M_STREAM_LOCAL_ACCEPTED, tsip_event_code_e.DIALOG_MEDIA_LOCAL_ACCEPTED, "Media Accepted", null); break; case tmedia_session_events_e.STREAM_LOCAL_REFUSED: a.signal_invite(tsip_event_invite_type_e.M_STREAM_LOCAL_REFUSED, tsip_event_code_e.DIALOG_MEDIA_LOCAL_REFUSED, "Media Refused", null); var b = new tsip_action(tsip_action_type_e.HANGUP); b.set_line_resp(603, "Media stream permission denied"); a.hangup(b); break; case tmedia_session_events_e.STREAM_LOCAL_ADDED: a.get_session().__set_stream_local(a.o_msession_mgr.get_stream_local()); a.signal_invite(tsip_event_invite_type_e.M_STREAM_LOCAL_ADDED, tsip_event_code_e.DIALOG_MEDIA_ADDED, "Media Added", null); break; case tmedia_session_events_e.STREAM_LOCAL_REMOVED: a.get_session().__set_stream_local(null); a.signal_invite(tsip_event_invite_type_e.M_STREAM_LOCAL_REMOVED, tsip_event_code_e.DIALOG_MEDIA_REMOVED, "Media Removed", null); break; case tmedia_session_events_e.STREAM_REMOTE_ADDED: a.get_session().__set_stream_remote(a.o_msession_mgr.get_stream_remote()); a.signal_invite(tsip_event_invite_type_e.M_STREAM_REMOTE_ADDED, tsip_event_code_e.DIALOG_MEDIA_ADDED, "Media Added", null); break; case tmedia_session_events_e.STREAM_REMOTE_REMOVED: a.get_session().__set_stream_remote(null); a.signal_invite(tsip_event_invite_type_e.M_STREAM_REMOTE_REMOVED, tsip_event_code_e.DIALOG_MEDIA_REMOVED, "Media Removed", null); break; case tmedia_session_events_e.RFC5168_REQUEST_IDR: a.send_info('\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n', "application/media_control+xml"); break; case tmedia_session_events_e.BFCP_INFO: a.signal_invite(tsip_event_invite_type_e.M_BFCP_INFO, tsip_event_code_e.DIALOG_BFCP_INFO, h ? h : "BFCP INFO", null); break } } function __tsip_dialog_invite_event_callback(a, b, c) { var d = -1; switch (b) { case tsip_dialog_event_type_e.I_MSG: if (c) { if (c.is_response()) { if (c.is_1xx()) { d = a.fsm_act(tsip_dialog_invite_actions_e.I_1XX, c, null) } else { if (c.is_2xx()) { d = a.fsm_act(tsip_dialog_invite_actions_e.I_2XX, c, null) } else { if (c.is_response_xxx(401) || c.is_response_xxx(407)) { d = a.fsm_act(tsip_dialog_invite_actions_e.I_401_407, c, null) } else { if (c.is_response_xxx(422)) { d = a.fsm_act(tsip_dialog_invite_actions_e.I_422, c, null) } else { if (c.is_3456()) { d = a.fsm_act(tsip_dialog_invite_actions_e.I_300_to_699, c, null) } } } } } } else { if (c.is_invite()) { d = a.fsm_act(tsip_dialog_invite_actions_e.I_INVITE, c, null) } else { if (c.is_update()) { d = a.fsm_act(tsip_dialog_invite_actions_e.I_UPDATE, c, null) } else { if (c.is_prack()) { d = a.fsm_act(tsip_dialog_invite_actions_e.I_PRACK, c, null) } else { if (c.is_ack()) { d = a.fsm_act(tsip_dialog_invite_actions_e.I_ACK, c, null) } else { if (c.is_options()) { d = a.fsm_act(tsip_dialog_invite_actions_e.I_OPTIONS, c, null) } else { if (c.is_bye()) { d = a.fsm_act(tsip_dialog_invite_actions_e.I_BYE, c, null) } else { if (c.is_cancel()) { d = a.fsm_act(tsip_dialog_invite_actions_e.I_CANCEL, c, null) } else { if (c.is_info()) { d = a.fsm_act(tsip_dialog_invite_actions_e.I_INFO, c, null) } else { if (c.is_notify()) { d = a.fsm_act(tsip_dialog_invite_actions_e.I_NOTIFY, c, null) } else { if (c.is_refer()) { d = a.fsm_act(tsip_dialog_invite_actions_e.I_REFER, c, null) } } } } } } } } } } } } break; case tsip_dialog_event_type_e.CANCELED: d = a.fsm_act(tsip_dialog_invite_actions_e.O_CANCEL, c, null); break; case tsip_dialog_event_type_e.TIMEDOUT: if (!c || (!c.is_request() || !c.is_info())) { d = a.fsm_act(tsip_dialog_invite_actions_e.TRANSPORT_ERROR, c, null) } break; case tsip_dialog_event_type_e.TERMINATED: case tsip_dialog_event_type_e.ERROR: case tsip_dialog_event_type_e.TRANSPORT_ERROR: d = a.fsm_act(tsip_dialog_invite_actions_e.TRANSPORT_ERROR, c, null); break } return d } function __tsip_dialog_invite_cond_is_resp2invite(b, a) { return a.is_response_to_invite() } function __tsip_dialog_invite_cond_is_resp2update(b, a) { return a.is_response_to_update() } function __tsip_dialog_invite_cond_is_resp2invite_or_update(b, a) { return __tsip_dialog_invite_cond_is_resp2invite(b, a) || __tsip_dialog_invite_cond_is_resp2update(b, a) } function __tsip_dialog_invite_cond_is_resp2bye(b, a) { return a.is_response_to_bye() } function __tsip_dialog_invite_cond_is_resp2prack(b, a) { return a.is_response_to_prack() } function __tsip_dialog_invite_cond_is_resp2info(b, a) { return a.is_response_to_info() } function __tsip_dialog_invite_cond_is_resp2cancel(b, a) { return a.is_response_to_cancel() } function __tsip_dialog_invite_cond_is_resp2refer(b, a) { return a.is_response_to_refer() } function __tsip_dialog_invite_cond_is_1xx_notify(c, b) { var a = __tsip_dialog_invite_get_sip_frag_respcode(b); return (a >= 100 && a <= 199) } function __tsip_dialog_invite_cond_is_23456_notify(c, b) { var a = __tsip_dialog_invite_get_sip_frag_respcode(b); return (a >= 200 && a <= 699) } function __tsip_dialog_invite_cond_is_f_refer(c, a) { var b = a.get_header(tsip_header_type_e.Refer_To); return (!b || !b.o_uri) } function __tsip_dialog_invite_cond_is_1xx_f_notify(b, a) { return a.is_1xx() } function __tsip_dialog_invite_cond_is_23456_f_notify(b, a) { return a.is_23456() } function x0000_Connected_2_Connected_X_oDTMF(a) { if (a[0].o_msession_mgr && (WebRtc4all_GetType() == WebRtcType_e.W4A || WebRtc4all_GetType() == WebRtcType_e.IE || WebRtc4all_GetType() == WebRtcType_e.NPAPI)) { var b = a[2]; return a[0].o_msession_mgr.send_dtmf(b.o_content.toString()) } else { return x0000_Any_2_Any_X_oINFO(a) } } function x0000_Connected_2_Connected_X_oLMessage(a) { tsk_utils_log_error("Not implemented"); return 0 } function x0000_Connected_2_Connected_X_iACK(a) { var e = a[0]; var c = a[1]; var d = 0; var b = e.o_msession_mgr && !e.o_msession_mgr.has_ro(); if ((d = e.process_ro(c, b))) { return d } if (e.o_msession_mgr) { d = e.o_msession_mgr.acked() } e.signal_invite(tsip_event_invite_type_e.DIALOG_REQUEST_INCOMING, tsip_event_code_e.DIALOG_REQUEST_INCOMING, "Incoming Request", c); return d } function x0000_Connected_2_Connected_X_iINVITEorUPDATE(a) { var d = a[0]; var e = a[1]; var h; var f; var b = d.o_msession_mgr ? d.o_msession_mgr.get_media_type() : tmedia_type_e.NONE; var c = d.o_msession_mgr ? d.o_msession_mgr.is_roap() : false; var j; var g; d.o_last_iOffer = e; if (c) { d.e_next_offer_type = tsip_dialog_invite_next_offer_type_e.SUCCESS } if ((h = d.process_ro(e, true))) { return h } g = e.has_content(); j = d.o_msession_mgr ? d.o_msession_mgr.get_media_type() : tmedia_type_e.NONE; f = !e.has_content() && e.is_invite(); h = d.hold_handle(e); if (!c) { h = d.send_response(e, 200, "OK", (d.o_msession_mgr && (g || f || d.o_msession_mgr.has_ro_changed() || d.o_msession_mgr.has_state_changed() || (b != j)))) } d.signal_invite(tsip_event_invite_type_e.DIALOG_REQUEST_INCOMING, tsip_event_code_e.DIALOG_REQUEST_INCOMING, "Incoming Request", e); return h } function x0000_Connected_2_Connected_X_oINVITE(a) { var c; var d = a[0]; var b = a[2]; if (!d.o_msession_mgr) { tsk_utils_log_warn("Media Session manager is Null"); return 0 } c = d.o_msession_mgr.set_media_type(b.media.e_type); d.set_action_curr(b); d.config_msession_mgr(d.o_msession_mgr); if ((iret = d.send_invite(true))) {} return 0 } function x0000_Any_2_Any_X_noOps(a) { var c = a[0]; var b = a[2]; switch (b.e_type) { case tsip_action_type_e.MUTE: if (c.o_msession_mgr) { c.o_msession_mgr.set(tmedia_session_mgr.prototype.SetParamSession(c.o_msession_mgr.e_type, "mute-" + b.mute.s_media, b.mute.b_muted)) } break; default: tsk_utils_log_error("Not implemented"); return -1 } return 0 } function x0000_Any_2_Any_X_i1xx(a) { var e = a[0]; var d = a[1]; var c = 0; if ((c = e.update_with_response(d))) { return c } if ((d.get_response_code() >= 101 && d.get_response_code() <= 199)) { var b = e.o_msession_mgr && !e.o_msession_mgr.has_lo(); if (d.has_content() && (c = e.process_ro(d, b))) { return c } if (d.is_required("100rel") && (c = e.send_prack(d))) { return c } } c = e.signal_invite(tsip_event_invite_type_e.I_AO_REQUEST, d.get_response_code(), d.get_response_phrase(), d); if (e.b_is_transf) { c = e.notify_parent(d) } return c } function x0000_Any_2_Any_X_oINFO(a) { var e = a[0]; var b = a[2]; var c; e.b_running = true; e.set_action_curr(b); if ((c = e.request_new("INFO"))) { var d; if ((d = tsip_dialog.prototype.ApplyAction(c, b)) == 0) { d = e.request_send(c) } return d } else { tsk_utils_log_error("Failed to create new INFO request"); return -1 } } function x0000_Any_2_Any_X_iINFO(a) { var e = a[0]; var b = a[1]; var c = e.send_response(b, 200, "OK"); e.signal_invite(tsip_event_invite_type_e.DIALOG_REQUEST_INCOMING, tsip_event_code_e.DIALOG_REQUEST_INCOMING, "Incoming Request", b); if (e.o_msession_mgr && b.has_content()) { var d = b.get_content_as_string(); if (!tsk_string_is_null_or_empty(d)) { e.o_msession_mgr.processContent("INFO", b.get_content_type(), d, d.length) } } return c } function x0000_Any_2_Any_X_i401_407_INVITEorUPDATE(a) { var d = a[0]; var b = a[1]; var c = 0; if ((c = d.update_with_response(b))) { d.signal_invite(tsip_event_invite_type_e.I_AO_REQUEST, b.get_response_code(), b.get_response_phrase(), b); return c } return d.send_offer(b.is_response_to_invite(), false) } function x0000_Any_2_Any_X_i2xxINVITEorUPDATE(a) { var e = a[0]; var c = a[1]; var d = 0; if (this.o_last_oInvite && this.o_last_oInvite.o_hdr_CSeq.i_seq == c.o_hdr_CSeq.i_seq) { if (c.is_response_to_invite()) { return e.send_ack(c) } } if ((d = e.update_with_response(c))) { return d } var b = e.o_msession_mgr && !e.o_msession_mgr.has_lo(); if ((d = e.process_ro(c, b))) { return d } if (c.is_response_to_invite()) { d = e.send_ack(c) } return d } function x0000_Any_2_Any_X_iPRACK(a) { tsk_utils_log_error("Not implemented"); return 0 } function x0000_Any_2_Any_X_iOPTIONS(a) { var c = a[0]; var b = a[1]; c.signal_invite(tsip_event_invite_type_e.DIALOG_REQUEST_INCOMING, tsip_event_code_e.DIALOG_REQUEST_INCOMING, "Incoming Request", b); return c.send_response(b, 200, "OK", false) } function x0000_Any_2_Trying_X_oBYE(a) { var c = a[0]; var b; c.signal(tsip_event_code_e.DIALOG_TERMINATING, "Call terminating..."); if ((b = c.send_bye()) == 0) { if (c.o_msession_mgr && c.o_msession_mgr.is_started()) { b = c.o_msession_mgr.stop() } } return b } function x0000_Any_2_Terminated_X_iBYE(a) { var c = a[0]; var b = a[1]; c.set_last_error(tsip_event_code_e.DIALOG_TERMINATED, "Call terminated"); return c.send_response(b, 200, "OK", false) } function x0000_Any_2_Trying_X_shutdown(a) { var b = a[0]; b.timer_schedule("invite", "Shutdown"); b.signal(tsip_event_code_e.DIALOG_TERMINATING, "Call terminating..."); if (b.e_state == tsip_dialog_state_e.ESTABLISHED) { return b.send_bye() } else { if (b.e_state == tsip_dialog_state_e.EARLY) { return b.send_cancel() } } } function x9997_Any_2_Any_X_LoSdpRequestTimeout(a) { tsk_utils_log_error("Not implemented"); return 0 } function x9998_Any_2_Terminated_X_transportError(a) { var b = a[0]; b.set_last_error(tsip_event_code_e.DIALOG_TRANSPORT_ERROR, "Transport error"); return 0 } function x9999_Any_2_Terminated_X_Error(a) { var b = a[0]; return 0 } function __tsip_dialog_invite_onterm(a) { tsk_utils_log_info("=== INVITE Dialog terminated ==="); a.timer_cancel("100Rel"); a.timer_cancel("Session"); a.timer_cancel("Shutdown"); a.timer_cancel("LoSdpRequest"); if (a.o_msession_mgr) { i_ret = a.o_msession_mgr.stop() } a.signal(tsip_event_code_e.DIALOG_TERMINATED, a.last_error.s_phrase ? a.last_error.s_phrase : "Call terminated", a.last_error.o_message); return a.deinit() } if (!window.__b_release_mode) { tsip_api_add_js_scripts("head", "src/tinySIP/src/dialogs/tsip_dialog_invite__client.js", "src/tinySIP/src/dialogs/tsip_dialog_invite__ect.js", "src/tinySIP/src/dialogs/tsip_dialog_invite__hold.js", "src/tinySIP/src/dialogs/tsip_dialog_invite__server.js", "src/tinySIP/src/dialogs/tsip_dialog_invite__timers.js") } tsip_dialog_invite.prototype.init_client = function() { this.o_fsm.set(tsk_fsm_entry.prototype.CreateAlways(tsip_dialog_invite_states_e.STARTED, tsip_dialog_invite_actions_e.O_INVITE, tsip_dialog_invite_states_e.OUTGOING, c0000_Started_2_Outgoing_X_oINVITE, "c0000_Started_2_Outgoing_X_oINVITE"), tsk_fsm_entry.prototype.Create(tsip_dialog_invite_states_e.OUTGOING, tsip_dialog_invite_actions_e.I_2XX, __tsip_dialog_invite_cond_is_resp2invite, tsip_dialog_invite_states_e.CONNECTED, c0000_Outgoing_2_Connected_X_i2xxINVITE, "c0000_Outgoing_2_Connected_X_i2xxINVITE"), tsk_fsm_entry.prototype.CreateAlways(tsip_dialog_invite_states_e.OUTGOING, tsip_dialog_invite_actions_e.I_INVITE, tsip_dialog_invite_states_e.OUTGOING, c0000_Outgoing_2_Outgoing_X_iINVITEorUPDATE, "c0000_Outgoing_2_Outgoing_X_iINVITEorUPDATE"), tsk_fsm_entry.prototype.CreateAlways(tsip_dialog_invite_states_e.OUTGOING, tsip_dialog_invite_actions_e.I_UPDATE, tsip_dialog_invite_states_e.OUTGOING, c0000_Outgoing_2_Outgoing_X_iINVITEorUPDATE, "c0000_Outgoing_2_Outgoing_X_iINVITEorUPDATE"), tsk_fsm_entry.prototype.CreateAlways(tsip_dialog_invite_states_e.OUTGOING, tsip_dialog_invite_actions_e.O_CANCEL, tsip_dialog_invite_states_e.CANCELLING, c0000_Outgoing_2_Cancelling_X_oCANCEL, "c0000_Outgoing_2_Cancelling_X_oCANCEL"), tsk_fsm_entry.prototype.Create(tsip_dialog_invite_states_e.CANCELLING, tsip_dialog_invite_actions_e.I_300_to_699, __tsip_dialog_invite_cond_is_resp2cancel, tsip_dialog_invite_states_e.TERMINATED, null, "c0000_Cancelling_2_Terminated_X_i300_to_699"), tsk_fsm_entry.prototype.Create(tsip_dialog_invite_states_e.CANCELLING, tsip_dialog_invite_actions_e.I_2XX, __tsip_dialog_invite_cond_is_resp2cancel, tsip_dialog_invite_states_e.CANCELLING, null, "c0000_Cancelling_2_Cancelling_X_i2xx"), tsk_fsm_entry.prototype.Create(tsip_dialog_invite_states_e.CANCELLING, tsip_dialog_invite_actions_e.I_300_to_699, __tsip_dialog_invite_cond_is_resp2invite, tsip_dialog_invite_states_e.TERMINATED, c0000_Cancelling_2_Terminated_X_i300_to_699, "c0000_Cancelling_2_Terminated_X_i300_to_699"), tsk_fsm_entry.prototype.Create(tsip_dialog_invite_states_e.OUTGOING, tsip_dialog_invite_actions_e.I_300_to_699, __tsip_dialog_invite_cond_is_resp2invite, tsip_dialog_invite_states_e.TERMINATED, c0000_Outgoing_2_Terminated_X_i300_to_i699INVITE, "c0000_Outgoing_2_Terminated_X_i300_to_i699INVITE")) }; function c0000_Started_2_Outgoing_X_oINVITE(a) { var c; var d = a[0]; var b = a[2]; if (!d.o_msession_mgr) { d.o_msession_mgr = d.new_msession_mgr(b ? b.media.e_type : tmedia_type_e.AUDIO_VIDEO, d.get_stack().network.s_local_ip, false, true) } d.b_is_client = true; d.b_is_transf = (d.get_session().i_id_parent != tsip_session.prototype.__i_session_id_invalid); d.set_action_curr(b); d.get_session().media.e_type = b.media.e_type; if (b.media.ao_params.length > 0) { tsk_utils_log_error("Not implemented"); return -1 } if (d.get_session().media.timers.i_timeout) { d.stimers.i_timeout = d.get_session().media.timers.i_timeout; d.stimers.s_refresher = d.get_session().media.timers.s_refresher; d.stimers.is_refresher = tsk_stri, g_iequals(d.stimers.s_refresher, "uac"); d.supported.b_timer = true } c = d.send_invite(false); d.signal(tsip_event_code_e.DIALOG_CONNECTING, "Call in progress..."); return c } function c0000_Outgoing_2_Outgoing_X_iINVITEorUPDATE(a) { tsk_utils_log_error("Not implemented"); return 0 } function c0000_Outgoing_2_Connected_X_i2xxINVITE(a) { var e = a[0]; var c = a[1]; var d = 0; if ((d = e.update_with_response(c))) { return ret } var b = e.o_msession_mgr && !e.o_msession_mgr.has_lo(); if ((d = e.process_ro(c, b))) { return d } else { d = e.send_ack(c) } e.b_support_update = c.is_allowed("UPDATE"); if (e.stimers.i_timeout) { e.stimers_handle(c) } e.signal_invite(tsip_event_invite_type_e.M_EARLY_MEDIA, c.get_response_code(), c.get_response_phrase(), c); e.signal(tsip_event_code_e.DIALOG_CONNECTED, "In Call"); if (e.b_is_transf) { d = e.notify_parent(c); e.b_is_transf = false } return d } function c0000_Outgoing_2_Terminated_X_i300_to_i699INVITE(a) { var d = a[0]; var b = a[1]; var c = 0; d.set_last_error(b.get_response_code(), b.get_response_phrase(), b); c = d.signal_invite(tsip_event_invite_type_e.I_AO_REQUEST, b.get_response_code(), b.get_response_phrase(), b); if (d.b_is_transf) { c = d.notify_parent(b); d.b_is_transf = false } return c } function c0000_Outgoing_2_Cancelling_X_oCANCEL(a) { var b = a[0]; if (b.o_msession_mgr) { i_ret = b.o_msession_mgr.stop() } b.signal(tsip_event_code_e.DIALOG_TERMINATING, "Call terminating..."); return b.send_cancel() } function c0000_Cancelling_2_Terminated_X_i300_to_699(a) { var c = a[0]; var b = a[1]; c.set_last_error(b.get_response_code(), b.get_response_phrase(), b); return 0 } var x0400_Connected_2_Connected_X_fREFER = null; tsip_dialog_invite.prototype.init_ect = function() { this.o_fsm.set(tsk_fsm_entry.prototype.CreateAlways(tsip_dialog_invite_states_e.CONNECTED, tsip_dialog_invite_actions_e.O_ECT, tsip_dialog_invite_states_e.O_ECT_INPROGRESS, x0400_Connected_2_oECTing_X_oECT, "x0400_Connected_2_oECTing_X_oECT"), tsk_fsm_entry.prototype.Create(tsip_dialog_invite_states_e.O_ECT_INPROGRESS, tsip_dialog_invite_actions_e.I_2XX, __tsip_dialog_invite_cond_is_resp2refer, tsip_dialog_invite_states_e.O_ECT_INPROGRESS, x0400_oECTing_2_oECTing_X_i2xx, "x0400_oECTing_2_oECTing_X_i2xx"), tsk_fsm_entry.prototype.Create(tsip_dialog_invite_states_e.O_ECT_INPROGRESS, tsip_dialog_invite_actions_e.I_300_to_699, __tsip_dialog_invite_cond_is_resp2refer, tsip_dialog_invite_states_e.CONNECTED, x0400_oECTing_2_Connected_X_i3456, "x0400_ECTing_2_Connected_X_i36"), tsk_fsm_entry.prototype.Create(tsip_dialog_invite_states_e.O_ECT_INPROGRESS, tsip_dialog_invite_actions_e.I_NOTIFY, __tsip_dialog_invite_cond_is_1xx_notify, tsip_dialog_invite_states_e.O_ECT_INPROGRESS, x0400_oECTing_2_oECTing_X_iNOTIFY, "x0400_oECTing_2_oECTing_X_iNOTIFY"), tsk_fsm_entry.prototype.Create(tsip_dialog_invite_states_e.O_ECT_INPROGRESS, tsip_dialog_invite_actions_e.I_NOTIFY, __tsip_dialog_invite_cond_is_23456_notify, tsip_dialog_invite_states_e.CONNECTED, x0400_oECTing_2_Connected_X_iNOTIFY, "x0400_oECTing_2_Connected_X_iNOTIFY"), tsk_fsm_entry.prototype.Create(tsip_dialog_invite_states_e.CONNECTED, tsip_dialog_invite_actions_e.I_REFER, __tsip_dialog_invite_cond_is_f_refer, tsip_dialog_invite_states_e.CONNECTED, x0400_Connected_2_Connected_X_fREFER, "x0400_Connected_2_Connected_X_fREFER"), tsk_fsm_entry.prototype.CreateAlways(tsip_dialog_invite_states_e.CONNECTED, tsip_dialog_invite_actions_e.I_REFER, tsip_dialog_invite_states_e.I_ECT_REQUESTED, x0400_Connected_2_iECTreq_X_iREFER, "x0400_Connected_2_iECTreq_X_iREFER"), tsk_fsm_entry.prototype.CreateAlways(tsip_dialog_invite_states_e.I_ECT_REQUESTED, tsip_dialog_invite_actions_e.I_ECT_REJECT, tsip_dialog_invite_states_e.CONNECTED, x0400_iECTreq_2_Connected_X_reject, "x0400_iECTreq_2_Connected_X_reject"), tsk_fsm_entry.prototype.CreateAlways(tsip_dialog_invite_states_e.I_ECT_REQUESTED, tsip_dialog_invite_actions_e.I_ECT_ACCEPT, tsip_dialog_invite_states_e.I_ECT_INPROGRESS, x0400_iECTreq_2_iECTing_X_accept, "x0400_iECTreq_2_iECTing_X_accept"), tsk_fsm_entry.prototype.Create(tsip_dialog_invite_states_e.I_ECT_INPROGRESS, tsip_dialog_invite_actions_e.I_ECT_LNOTIFY, __tsip_dialog_invite_cond_is_1xx_f_notify, tsip_dialog_invite_states_e.I_ECT_INPROGRESS, x0400_iECTing_2_iECTing_X_1xxfNOTIFY, "x0400_iECTing_2_iECTing_X_1xxfNOTIFY"), tsk_fsm_entry.prototype.Create(tsip_dialog_invite_states_e.I_ECT_INPROGRESS, tsip_dialog_invite_actions_e.I_ECT_LNOTIFY, __tsip_dialog_invite_cond_is_23456_f_notify, tsip_dialog_invite_states_e.CONNECTED, x0400_iECTing_2_Connected_X_23456fNOTIFY, "x0400_iECTing_2_Connected_X_23456fNOTIFY")) }; tsip_dialog_invite.prototype.ect_send_notify = function(a, b) { var e; var c = -1; if ((e = this.request_new("NOTIFY"))) { var d = tsk_string_format("{0} {1} {2}\r\n", tsip_message.prototype.__s_version_default, a, b); e.add_content(d, "message/sipfrag"); c = this.request_send(e); if (c == 0) { this.signal_invite(tsip_event_invite_type_e.O_ECT_NOTIFY, a, b, e) } } else { tsk_utils_log_error("Failed to create request") } return c }; tsip_dialog_invite.prototype.ect_send_refer = function(a) { var e = 0; var d; var b; if (!a) { tsk_utils_log_error("Invalid parameter"); return -1 } if (!(b = tsip_uri.prototype.Parse(a))) { tsk_utils_log_error("Failed to parse " + a); return -1 } if ((d = this.request_new("REFER"))) { var c = new tsip_header_Referred_By(this.get_stack().identity.o_uri_impu); c.add_param("cid", tsk_string_random(11)); d.add_headers(new tsip_header_Refer_To(b), c, new tsip_header_Refer_Sub(this.supported.b_refer_sub)); if (this.supported.b_norefsub) { d.add_headers(new tsip_header_Supported("norefersub")) } e = this.request_send(d) } return e }; function x0400_Connected_2_oECTing_X_oECT(a) { var c; var d = a[0]; var b = a[2]; c = d.ect_send_refer(b.ect.s_to); if (c == 0) { d.signal_invite(tsip_event_invite_type_e.O_ECT_TRYING, tsip_event_code_e.DIALOG_REQUEST_SENT, "Call Transfer Initiated", null) } return c } function x0400_oECTing_2_oECTing_X_i2xx(a) { var d = a[0]; var c = a[1]; var b; b = c.get_header(tsip_header_type_e.Refer_Sub); if (b) { this.supported.b_refer_sub = b.b_sub } if (c.is_required("norefersub")) { this.require.b_norefsub = true } d.signal_invite(tsip_event_invite_type_e.O_ECT_ACCEPTED, c.get_response_code(), c.get_response_phrase(), c); return 0 } function x0400_oECTing_2_Connected_X_i3456(a) { var c = a[0]; var b = a[1]; c.signal_invite(tsip_event_invite_type_e.O_ECT_FAILED, b.get_response_code(), b.get_response_phrase(), b); return 0 } function x0400_oECTing_2_oECTing_X_iNOTIFY(b) { var e = b[0]; var d = b[1]; var a; if ((a = __tsip_dialog_invite_get_sip_frag_msg(d))) { var c = e.send_response(d, 200, "OK", false); e.signal_invite(tsip_event_invite_type_e.O_ECT_NOTIFY, a.get_response_code(), a.get_response_phrase(), a); return c } return 0 } var x0400_oECTing_2_Connected_X_iNOTIFY = x0400_oECTing_2_oECTing_X_iNOTIFY; function x0400_Connected_2_iECTreq_X_iREFER(a) { var b = a[0]; b.o_last_iRefer = a[1]; b.send_response(b.o_last_iRefer, 100, "Asking for Transfer", false); b.signal_invite(tsip_event_invite_type_e.I_ECT_REQUESTED, tsip_event_code_e.DIALOG_REQUEST_INCOMING, "Incoming Request", b.o_last_iRefer); return 0 } function x0400_iECTreq_2_Connected_X_reject(b) { var f = b[0]; var c = b[2]; var a = c.line_resp.i_code >= 300 ? c.line_resp.i_code : 603; var e = c.line_resp.s_phrase ? c.line_resp.s_phrase : "Decline"; var d = tsk_string_format('SIP; cause={0}; text="{1}"', a, e); return f.send_error(f.o_last_iRefer, a, e, d) } function x0400_iECTreq_2_iECTing_X_accept(a) { var d; var e = a[0]; var b = a[2]; d = e.send_response(e.o_last_iRefer, 202, "Transfering...", false); var c = e.o_last_iRefer.get_header(tsip_header_type_e.Refer_To); this.o_ss_transf = new tsip_session_invite(e.get_stack(), tsip_session.prototype.SetToStr(c.o_uri.tostring(false, false)), tsip_session.prototype.SetCaps("+sip.ice")); this.o_ss_transf.media.e_type = e.get_session().media.e_type; this.o_ss_transf.i_id_parent = e.get_session().get_id(); tsip_event.prototype.Signal(tsip_event_invite_type_e.I_ECT_NEW_CALL, this.o_ss_transf, tsip_event_code_e.DIALOG_REQUEST_OUTGOING, "ECTing", e.o_last_iRefer); return this.o_ss_transf.call(this.o_ss_transf.media.e_type) } function x0400_iECTing_2_iECTing_X_1xxfNOTIFY(a) { var c = a[0]; var b = a[1]; return c.ect_send_notify(b.get_response_code(), b.get_response_phrase()) } function x0400_iECTing_2_Connected_X_23456fNOTIFY(b) { var d = b[0]; var c = b[1]; var a = c.get_response_code(); d.ect_send_notify(a, c.get_response_phrase()); if (a >= 200 && a <= 299) { d.signal_invite(tsip_event_invite_type_e.I_ECT_COMPLETED, c.get_response_code(), c.get_response_phrase(), d.o_last_iRefer); return d.send_bye() } else { d.signal_invite(tsip_event_invite_type_e.I_ECT_FAILED, c.get_response_code(), c.get_response_phrase(), d.o_last_iRefer); return 0 } } function __tsip_dialog_invite_get_sip_frag_respcode(b) { var a = __tsip_dialog_invite_get_sip_frag_msg(b); return a ? a.get_response_code() : 0 } function __tsip_dialog_invite_get_sip_frag_msg(d) { if (!d) { tsk_utils_log_error("Invalid parameter"); return null } var a; if (d.has_content() && tsk_string_iequals(d.get_content_type(), "message/sipfrag")) { var b = d.get_content_as_string(); if (b) { if (b.lastIndexOf("\r\n") != (b.length - 2)) { b += "\r\n" } b += "\r\n"; var c = tsk_ragel_state_create(); tsk_ragel_state_init_str(c, b); a = tsip_message.prototype.Parse(c, false); if (a && !a.is_response()) { tsk_utils_log_error("SipFrag doesn't contain response"); return null } } } return a } tsip_dialog_invite.prototype.init_hold = function() { this.o_fsm.set(tsk_fsm_entry.prototype.CreateAlways(tsip_dialog_invite_states_e.CONNECTED, tsip_dialog_invite_actions_e.O_HOLD, tsip_dialog_invite_states_e.HOLDING, x0100_Connected_2_Holding_X_oHold, "x0100_Connected_2_Holding_X_oHold"), tsk_fsm_entry.prototype.Create(tsip_dialog_invite_states_e.HOLDING, tsip_dialog_invite_actions_e.I_2XX, __tsip_dialog_invite_cond_is_resp2invite_or_update, tsip_dialog_invite_states_e.CONNECTED, x0101_Holding_2_Connected_X_ixxx, "x0101_Holding_2_Connected_X_ixxx"), tsk_fsm_entry.prototype.Create(tsip_dialog_invite_states_e.HOLDING, tsip_dialog_invite_actions_e.I_300_to_699, __tsip_dialog_invite_cond_is_resp2invite_or_update, tsip_dialog_invite_states_e.CONNECTED, x0101_Holding_2_Connected_X_ixxx, "x0101_Holding_2_Connected_X_ixxx"), tsk_fsm_entry.prototype.CreateAlways(tsip_dialog_invite_states_e.CONNECTED, tsip_dialog_invite_actions_e.O_RESUME, tsip_dialog_invite_states_e.RESUMING, x0102_Connected_2_Resuming_X_oResume, "x0102_Connected_2_Resuming_X_oResume"), tsk_fsm_entry.prototype.Create(tsip_dialog_invite_states_e.RESUMING, tsip_dialog_invite_actions_e.I_2XX, __tsip_dialog_invite_cond_is_resp2invite_or_update, tsip_dialog_invite_states_e.CONNECTED, x0103_Resuming_2_Connected_X_ixxx, "x0103_Resuming_2_Connected_X_ixxx"), tsk_fsm_entry.prototype.Create(tsip_dialog_invite_states_e.RESUMING, tsip_dialog_invite_actions_e.I_300_to_699, __tsip_dialog_invite_cond_is_resp2invite_or_update, tsip_dialog_invite_states_e.CONNECTED, x0103_Resuming_2_Connected_X_ixxx, "x0103_Resuming_2_Connected_X_ixxx")) }; tsip_dialog_invite.prototype.hold_handle = function(c) { if (!c || !this.o_msession_mgr || (!c.is_invite() && !c.is_update())) { tsk_utils_log_error("Invalid parameter"); return -1 } var b; var a; var d = 0; b = this.o_msession_mgr.is_held(this.o_msession_mgr.e_type, false); a = !c.has_content() && c.is_invite(); if (a && b) { if ((d = this.o_msession_mgr.resume(this.o_msession_mgr.e_type, false)) == 0) { b = false } } if (d == 0 && (b != this.hold.b_remote)) { this.hold.b_remote = b; this.signal_invite(this.hold.b_remote ? tsip_event_invite_type_e.M_REMOTE_HOLD : tsip_event_invite_type_e.M_REMOTE_RESUME, tsip_event_invite_type_e.DIALOG_REQUEST_INCOMING, "Hold/Resume state changed", c) } return d }; function x0100_Connected_2_Holding_X_oHold(a) { var c; var d = a[0]; var b = a[2]; if (!d.o_msession_mgr) { tsk_utils_log_warn("Media Session manager is Null"); return 0 } c = d.o_msession_mgr.hold(b.media.e_type); d.set_action_curr(b); if ((iret = d.send_invite(false))) {} return 0 } function x0101_Holding_2_Connected_X_ixxx(a) { var c; var d = a[0]; var b = a[1]; d.set_action_curr(null); if ((c = d.process_ro(b))) { return c } else { if (b.is_response_to_invite()) { c = d.send_ack(b) } } if (b.is_2xx()) { d.signal_invite(tsip_event_invite_type_e.M_LOCAL_HOLD_OK, b.get_response_code(), b.get_response_phrase(), b); d.hold.b_local = true } else { d.signal_invite(tsip_event_invite_type_e.M_LOCAL_HOLD_NOK, b.get_response_code(), b.get_response_phrase(), b); d.hold.b_local = false } return c } function x0102_Connected_2_Resuming_X_oResume(a) { var c; var d = a[0]; var b = a[2]; if (!d.hold.b_local) { tsk_utils_log_warn("Not on hold state"); return 0 } if (!d.o_msession_mgr) { tsk_utils_log_warn("Media Session manager is Null"); return 0 } c = d.o_msession_mgr.resume(b.media.e_type, true); c = d.o_msession_mgr.resume(b.media.e_type, false); d.set_action_curr(b); if ((c = d.send_invite(false))) {} return 0 } function x0103_Resuming_2_Connected_X_ixxx(a) { var c; var d = a[0]; var b = a[1]; d.set_action_curr(null); if ((c = d.process_ro(b))) { return c } else { if (b.is_response_to_invite()) { c = d.send_ack(b) } } if (b.is_2xx()) { d.signal_invite(tsip_event_invite_type_e.M_LOCAL_RESUME_OK, b.get_response_code(), b.get_response_phrase(), b); d.hold.b_local = false } else { d.signal_invite(tsip_event_invite_type_e.M_LOCAL_RESUME_NOK, b.get_response_code(), b.get_response_phrase(), b); d.hold.b_local = true } return c } tsip_dialog_invite.prototype.__ao_supported_options = ["100rel", "timer"]; tsip_dialog_invite.prototype.init_server = function() { this.o_fsm.set(tsk_fsm_entry.prototype.Create(tsip_dialog_invite_states_e.STARTED, tsip_dialog_invite_actions_e.I_INVITE, __tsip_dialog_invite_cond_is_bad_extension, tsip_dialog_invite_states_e.TERMINATED, s0000_Started_2_Terminated_X_iINVITE, "s0000_Started_2_Terminated_X_iINVITE"), tsk_fsm_entry.prototype.Create(tsip_dialog_invite_states_e.STARTED, tsip_dialog_invite_actions_e.I_INVITE, __tsip_dialog_invite_cond_is_bad_content, tsip_dialog_invite_states_e.TERMINATED, s0000_Started_2_Terminated_X_iINVITE, "s0000_Started_2_Terminated_X_iINVITE"), tsk_fsm_entry.prototype.Create(tsip_dialog_invite_states_e.STARTED, tsip_dialog_invite_actions_e.I_INVITE, __tsip_dialog_invite_cond_is_toosmall, tsip_dialog_invite_states_e.STARTED, s0000_Started_2_Started_X_iINVITE, "s0000_Started_2_Started_X_iINVITE"), tsk_fsm_entry.prototype.Create(tsip_dialog_invite_states_e.STARTED, tsip_dialog_invite_actions_e.I_INVITE, __tsip_dialog_invite_cond_enable_100rel, tsip_dialog_invite_states_e.INPROGRESS, s0000_Started_2_InProgress_X_iINVITE, "s0000_Started_2_InProgress_X_iINVITE"), tsk_fsm_entry.prototype.CreateAlways(tsip_dialog_invite_states_e.STARTED, tsip_dialog_invite_actions_e.I_INVITE, tsip_dialog_invite_states_e.RINGING, s0000_Started_2_Ringing_X_iINVITE, "s0000_Started_2_Ringing_X_iINVITE"), tsk_fsm_entry.prototype.Create(tsip_dialog_invite_states_e.INPROGRESS, tsip_dialog_invite_actions_e.I_PRACK, __tsip_dialog_invite_cond_prack_matched, tsip_dialog_invite_states_e.RINGING, s0000_InProgress_2_Ringing_X_iPRACK, "s0000_InProgress_2_Ringing_X_iPRACK"), tsk_fsm_entry.prototype.CreateAlways(tsip_dialog_invite_states_e.INPROGRESS, tsip_dialog_invite_actions_e.I_UPDATE, tsip_dialog_invite_states_e.INPROGRESS, s0000_InProgress_2_InProgress_X_iUPDATE, "s0000_InProgress_2_InProgress_X_iUPDATE"), tsk_fsm_entry.prototype.CreateAlways(tsip_dialog_invite_states_e.INPROGRESS, tsip_dialog_invite_actions_e.I_CANCEL, tsip_dialog_invite_states_e.TERMINATED, s0000_Inprogress_2_Terminated_X_iCANCEL, "s0000_Inprogress_2_Terminated_X_iCANCEL"), tsk_fsm_entry.prototype.Create(tsip_dialog_invite_states_e.RINGING, tsip_dialog_invite_actions_e.I_PRACK, __tsip_dialog_invite_cond_prack_matched, tsip_dialog_invite_states_e.RINGING, s0000_Ringing_2_Ringing_X_iPRACK, "s0000_Ringing_2_Ringing_X_iPRACK"), tsk_fsm_entry.prototype.CreateAlways(tsip_dialog_invite_states_e.RINGING, tsip_dialog_invite_actions_e.ACCEPT, tsip_dialog_invite_states_e.CONNECTED, s0000_Ringing_2_Connected_X_Accept, "s0000_Ringing_2_Connected_X_Accept"), tsk_fsm_entry.prototype.CreateAlways(tsip_dialog_invite_states_e.RINGING, tsip_dialog_invite_actions_e.REJECT, tsip_dialog_invite_states_e.TERMINATED, s0000_Ringing_2_Terminated_X_Reject, "s0000_Ringing_2_Terminated_X_Reject"), tsk_fsm_entry.prototype.CreateAlways(tsip_dialog_invite_states_e.RINGING, tsip_dialog_invite_actions_e.I_CANCEL, tsip_dialog_invite_states_e.TERMINATED, s0000_Ringing_2_Terminated_X_iCANCEL, "s0000_Ringing_2_Terminated_X_iCANCEL"), tsk_fsm_entry.prototype.CreateAlways(tsk_fsm.prototype.__i_state_any, tsip_dialog_invite_actions_e.TIMER_100REL, tsk_fsm.prototype.__i_state_any, s0000_Any_2_Any_X_timer100rel, "s0000_Any_2_Any_X_timer100rel")) }; function __tsip_dialog_invite_cond_is_bad_extension(h, g) { var e; var d, c, b; for (d = 0; (e = g.get_header_at(tsip_header_type_e.Require, d)); ++d) { var f = false; var a = null; for (b = 0; b < e.as_options.length; ++b) { f = true; a = e.as_options[b]; for (c = 0; a && c < tsip_dialog_invite.prototype.__ao_supported_options.length; ++c) { if (tsk_string_iequals(a, tsip_dialog_invite.prototype.__ao_supported_options[c])) { f = false; break } } if (f) { break } } if (f && a) { h.send_unsupported(g, a); return true } } return false } function __tsip_dialog_invite_cond_is_bad_content(f, c) { var d; var a; var e = (f.e_state == tsip_dialog_state_e.initial && !c.has_content()); var b = f.o_msession_mgr && !f.o_msession_mgr.has_ro(); if ((d = f.process_ro(c, b))) { d = f.send_error(c, 488, "Not Acceptable", 'SIP; cause=488; text="Bad content"'); return true } return false } function __tsip_dialog_invite_cond_is_toosmall(d, a) { if (d.get_session().media.timers.i_timeout && (a.is_supported("timer") || a.is_required("timer"))) { var b; if ((b = a.get_header(tsip_header_type_e.Session_Expires))) { if (b.i_delta_seconds < TSIP_SESSION_EXPIRES_MIN_VALUE) { d.stimers.i_minse = TSIP_SESSION_EXPIRES_MIN_VALUE; d.send_response(a, 422, "Session Interval Too Small", false); return true } else { var c; d.stimers.i_timeout = b.i_delta_seconds; d.stimers.s_refresher = b.b_refresher_uas ? "uas" : "uac"; d.stimers.b_is_refresher = tsk_string_iequals(d.stimers.s_refresher, "uas"); if ((c = a.get_header(tsip_header_type_e.Min_SE))) { d.stimers.i_minse = c.i_value } } } } return false } function __tsip_dialog_invite_cond_enable_100rel(b, a) { return ((a.is_supported("100rel") && b.supported.b_100rel) || a.is_required("100rel")) } function __tsip_dialog_invite_cond_prack_matched(c, b) { var a; if (!c.o_last_o1xxrel) { return false } if ((a = b.get_header(tsip_header_type_e.RAck))) { if ((a.i_seq == c.i_rseq) && (tsk_string_iequals(a.s_method, c.o_last_o1xxrel.o_hdr_CSeq.s_method)) && (a.i_cseq == c.o_last_o1xxrel.o_hdr_CSeq.i_seq)) { c.i_rseq++; return true } else { tsk_utils_log_warn("Failed to match PRACK request") } } return false } function s0000_Started_2_Terminated_X_iINVITE(a) { return 0 } function s0000_Started_2_Started_X_iINVITE(a) { var b = a[0]; b.b_is_client = false; return 0 } function s0000_Started_2_InProgress_X_iINVITE(a) { var c = a[0]; var b = a[1]; c.b_is_client = false; c.o_last_iInvite = b; c.b_support_update = b.is_allowed("UPDATE"); c.update_with_invite(b); c.i_rseq = Math.floor((Math.random() * 65535)); c.require.b_100rel = true; return c.send_response(b, 183, "Session in Progress", true) } function s0000_Started_2_Ringing_X_iINVITE(a) { var d = a[0]; var b = a[1]; var c; d.b_is_client = false; d.o_last_iInvite = b; d.b_support_update = b.is_allowed("UPDATE"); if (d.o_last_iInvite && (d.o_last_iInvite.is_supported("100rel") || d.o_last_iInvite.is_required("100rel")) && d.supported.b_100rel) { d.require.b_100rel = true } if (d.get_session().media.timers.i_timeout) { if ((c = b.get_header(tsip_header_type_e.Session_Expires))) { d.stimers.timer.i_timeout = c.i_delta_seconds; d.stimers.s_refresher = c.s_refresher_uas ? "uas" : "uac"; d.stimers.b_is_refresher = c.s_refresher_uas; d.require.b_timer = true } } d.update_with_invite(b); d.send_response(b, 180, "Ringing", false); d.signal_invite(tsip_event_invite_type_e.I_NEW_CALL, tsip_event_code_e.DIALOG_REQUEST_INCOMING, "Incoming Call", b); return 0 } function s0000_InProgress_2_Ringing_X_iPRACK(a) { var e = a[0]; var c = a[1]; var d; e.timer_cancel("100Rel"); if ((d = e.send_response(c, 200, "OK", false)) == 0) { ++e.i_rseq } if (e.o_msession_mgr && !e.o_msession_mgr.sdp.o_ro) { if (c.has_content()) { var b = e.o_msession_mgr && !e.o_msession_mgr.has_ro(); if ((d = e.process_ro(c, b))) { d = e.send_error(e.o_last_iInvite, 488, "Not Acceptable", 'SIP; cause=488; text="Bad content"'); return -4 } } else { d = e.send_error(e.o_last_iInvite, 488, "Not Acceptable", 'SIP; cause=488; text="Offer expected in the PRACK"'); return -3 } } d = e.send_response(e.o_last_iInvite, 180, "Ringing", false); e.signal_invite(tsip_event_invite_type_e.I_NEW_CALL, tsip_event_code_e.DIALOG_REQUEST_INCOMING, "Incoming Call", c); return d } function s0000_InProgress_2_InProgress_X_iUPDATE(a) { tsk_utils_log_error("Not implemented"); return 0 } function s0000_Inprogress_2_Terminated_X_iCANCEL(a) { tsk_utils_log_error("Not implemented"); return 0 } function s0000_Ringing_2_Ringing_X_iPRACK(a) { var d = a[0]; var b = a[1]; var c; if (!d.o_last_iInvite) { return 0 } d.timer_cancel("100Rel"); c = d.send_response(b, 200, "OK", false); d.signal_invite(tsip_event_invite_type_e.I_REQUEST, tsip_event_code_e.DIALOG_REQUEST_INCOMING, "Incoming Request", b); return c } function s0000_Ringing_2_Connected_X_Accept(a) { var d = a[0]; var b = a[2]; var c; d.e_state = tsip_dialog_state_e.ESTABLISHED; d.set_action_curr(b); if (d.o_msession_mgr && !d.o_msession_mgr.is_started() && (d.o_msession_mgr.has_lo() && d.o_msession_mgr.has_ro())) { c = d.o_msession_mgr.start() } d.timer_cancel("100Rel"); c = d.send_response(d.o_last_iInvite, 200, "OK", true); if (d.stimers.i_timeout) { if (d.stimers.b_is_refresher) { tsk_utils_log_error("Not implemented") } else { tsk_utils_log_error("Not implemented") } } d.signal(tsip_event_code_e.DIALOG_CONNECTED, "In call"); if (!d.o_msession_mgr.has_lo()) {} return c } function s0000_Ringing_2_Terminated_X_Reject(b) { var f; var a; var e; var d; var g = b[0]; var c = b[2]; g.set_action_curr(c); g.timer_cancel("100Rel"); a = (c && c.line_resp.i_code >= 300) ? c.line_resp.i_code : 603; e = (c && c.line_resp.s_phrase) ? c.line_resp.s_phrase : "Decline"; d = tsk_string_format('SIP; cause={0}; text="{1}"', a, e); f = g.send_error(g.o_last_iInvite, a, e, d); g.set_last_error(a, "Call Rejected"); return f } function s0000_Ringing_2_Terminated_X_iCANCEL(a) { var e = a[0]; var b = a[1]; var c; var d; if ((c = e.response_new(200, "OK", b))) { d = e.get_stack().o_layer_transport.send(null, c) } d = e.send_error(e.o_last_iInvite, 487, "Request Cancelled", 'SIP; cause=487; text="Request Cancelled"'); e.set_last_error(487, "Request Cancelled"); e.signal_invite(tsip_event_invite_type_e.I_REQUEST, tsip_event_code_e.DIALOG_REQUEST_INCOMING, "Incoming Request", b); return d } function s0000_Any_2_Any_X_timer100rel(a) { var c = a[0]; var b; if (!c.o_last_o1xxrel) { return 0 } if ((c.i_timer100Rel <<= 1) >= (c.get_stack().o_timers.getA() << 6)) { tsk_utils_log_error("Sending reliable 1xx failed"); return -2 } if ((b = c.response_send(c.o_last_o1xxrel))) { return b } else { c.timer_schedule("invite", "100Rel") } return b } tsip_dialog_register.prototype = Object.create(tsip_dialog.prototype); tsip_dialog_register.prototype.__b_debug_state_machine = true; var tsip_dialog_register_actions_e = { ACCEPT: tsip_action_type_e.ACCEPT, REJECT: tsip_action_type_e.REJECT, HANGUP: tsip_action_type_e.HANGUP, O_REGISTER: tsip_action_type_e.REGISTER, CANCEL: tsip_action_type_e.CANCEL, SHUTDOWN: tsip_action_type_e.SHUTDOWN, I_1XX: 10001, I_2XX: 10002, I_401_407_421_494: 10003, I_423: 10004, I_300_to_699: 10005, I_REGISTER: 20000, SHUTDOWN_TIMEDOUT: 30000, TRANSPORT_ERROR: 30001, ERROR: 30002 }; var tsip_dialog_register_states_e = { STARTED: 0, INPROGRESS: 1, INCOMING: 2, CONNECTED: 3, TERMINATED: 4 }; function tsip_dialog_register(b, a) { tsip_dialog.call(this); this.o_last_iRegister = null; this.b_unregistering = false; this.b_is_server = false; this.o_timerRefresh = null; this.o_timerShutdown = null; this.i_timerShutdown = (tsip_dialog.prototype.__i_timer_shutdown << 1) / 3; this.init(tsip_dialog_type_e.REGISTER, a, b, tsip_dialog_register_states_e.STARTED, tsip_dialog_register_states_e.TERMINATED); this.set_callback(__tsip_dialog_register_event_callback); this.o_fsm.set_debug_enabled(tsip_dialog_register.prototype.__b_debug_state_machine); this.o_fsm.set_onterm_callback(__tsip_dialog_register_onterm, this); this.o_fsm.set(tsk_fsm_entry.prototype.CreateAlways(tsip_dialog_register_states_e.STARTED, tsip_dialog_register_actions_e.O_REGISTER, tsip_dialog_register_states_e.INPROGRESS, __tsip_dialog_register_Started_2_InProgress_X_oRegister, "tsip_dialog_register_Started_2_InProgress_X_oRegister"), tsk_fsm_entry.prototype.CreateAlways(tsip_dialog_register_states_e.INPROGRESS, tsip_dialog_register_actions_e.I_1XX, tsip_dialog_register_states_e.INPROGRESS, __tsip_dialog_register_InProgress_2_InProgress_X_1xx, "tsip_dialog_register_InProgress_2_InProgress_X_1xx"), tsk_fsm_entry.prototype.Create(tsip_dialog_register_states_e.INPROGRESS, tsip_dialog_register_actions_e.I_2XX, __tsip_dialog_register_cond_client_unregistering, tsip_dialog_register_states_e.TERMINATED, __tsip_dialog_register_InProgress_2_Terminated_X_2xx, "tsip_dialog_register_InProgress_2_Terminated_X_2xx"), tsk_fsm_entry.prototype.Create(tsip_dialog_register_states_e.INPROGRESS, tsip_dialog_register_actions_e.I_2XX, __tsip_dialog_register_cond_client_registering, tsip_dialog_register_states_e.CONNECTED, __tsip_dialog_register_InProgress_2_Connected_X_2xx, "tsip_dialog_register_InProgress_2_Connected_X_2xx"), tsk_fsm_entry.prototype.CreateAlways(tsip_dialog_register_states_e.INPROGRESS, tsip_dialog_register_actions_e.I_401_407_421_494, tsip_dialog_register_states_e.INPROGRESS, __tsip_dialog_register_InProgress_2_InProgress_X_401_407_421_494, "tsip_dialog_register_InProgress_2_InProgress_X_401_407_421_494"), tsk_fsm_entry.prototype.CreateAlways(tsip_dialog_register_states_e.INPROGRESS, tsip_dialog_register_actions_e.I_423, tsip_dialog_register_states_e.INPROGRESS, __tsip_dialog_register_InProgress_2_InProgress_X_423, "tsip_dialog_register_InProgress_2_InProgress_X_423"), tsk_fsm_entry.prototype.CreateAlways(tsip_dialog_register_states_e.INPROGRESS, tsip_dialog_register_actions_e.I_300_to_699, tsip_dialog_register_states_e.TERMINATED, __tsip_dialog_register_InProgress_2_Terminated_X_300_to_699, "tsip_dialog_register_InProgress_2_Terminated_X_300_to_699"), tsk_fsm_entry.prototype.CreateAlways(tsip_dialog_register_states_e.INPROGRESS, tsip_dialog_register_actions_e.CANCEL, tsip_dialog_register_states_e.TERMINATED, __tsip_dialog_register_InProgress_2_Terminated_X_cancel, "tsip_dialog_register_InProgress_2_Terminated_X_cancel"), tsk_fsm_entry.prototype.CreateAlways(tsip_dialog_register_states_e.INPROGRESS, tsip_dialog_register_actions_e.HANGUP, tsip_dialog_register_states_e.TERMINATED, null, "tsip_dialog_register_InProgress_2_Terminated_X_hangup"), tsk_fsm_entry.prototype.CreateAlways(tsip_dialog_register_states_e.INPROGRESS, tsip_dialog_register_actions_e.SHUTDOWN, tsip_dialog_register_states_e.TERMINATED, null, "tsip_dialog_register_InProgress_2_Terminated_X_shutdown"), tsk_fsm_entry.prototype.CreateAlways(tsip_dialog_register_states_e.CONNECTED, tsip_dialog_register_actions_e.O_REGISTER, tsip_dialog_register_states_e.INPROGRESS, __tsip_dialog_register_Connected_2_InProgress_X_oRegister, "tsip_dialog_register_Connected_2_InProgress_X_oRegister"), tsk_fsm_entry.prototype.Create(tsk_fsm.prototype.__i_state_any, tsip_dialog_register_actions_e.HANGUP, __tsip_dialog_register_cond_not_silent_hangup, tsip_dialog_register_states_e.INPROGRESS, __tsip_dialog_register_Any_2_InProgress_X_hangup, "tsip_dialog_register_Any_2_InProgress_X_hangup"), tsk_fsm_entry.prototype.Create(tsk_fsm.prototype.__i_state_any, tsip_dialog_register_actions_e.HANGUP, __tsip_dialog_register_cond_silent_hangup, tsip_dialog_register_states_e.TERMINATED, null, "tsip_dialog_register_Any_2_InProgress_X_silenthangup"), tsk_fsm_entry.prototype.Create(tsk_fsm.prototype.__i_state_any, tsip_dialog_register_actions_e.SHUTDOWN, __tsip_dialog_register_cond_not_silent_shutdown, tsip_dialog_register_states_e.INPROGRESS, __tsip_dialog_register_Any_2_InProgress_X_shutdown, "tsip_dialog_register_Any_2_InProgress_X_shutdown"), tsk_fsm_entry.prototype.Create(tsk_fsm.prototype.__i_state_any, tsip_dialog_register_actions_e.SHUTDOWN, __tsip_dialog_register_cond_silent_shutdown, tsip_dialog_register_states_e.TERMINATED, null, "tsip_dialog_register_Any_2_InProgress_X_silentshutdown"), tsk_fsm_entry.prototype.CreateAlways(tsk_fsm.prototype.__i_state_any, tsip_dialog_register_actions_e.SHUTDOWN_TIMEDOUT, tsip_dialog_register_states_e.TERMINATED, null, "tsip_dialog_register_shutdown_timedout"), tsk_fsm_entry.prototype.CreateAlways(tsk_fsm.prototype.__i_state_any, tsip_dialog_register_actions_e.TRANSPORT_ERROR, tsip_dialog_register_states_e.TERMINATED, __tsip_dialog_register_Any_2_Terminated_X_transportError, "tsip_dialog_register_Any_2_Terminated_X_transportError"), tsk_fsm_entry.prototype.CreateAlways(tsk_fsm.prototype.__i_state_any, tsip_dialog_register_actions_e.ERROR, tsip_dialog_register_states_e.TERMINATED, __tsip_dialog_register_Any_2_Terminated_X_Error, "tsip_dialog_register_Any_2_Terminated_X_Error")) } tsip_dialog_register.prototype.signal_register = function(b, a, d, c) { var e = new tsip_event_register(this.get_session(), a, d, c, b); return e.signal() }; tsip_dialog_register.prototype.send_register = function(a) { var b = null; var c = -1; if (this.b_unregistering) { this.i_expires = 0 } if ((b = this.request_new("REGISTER"))) { if (this.e_state == tsip_dialog_state_e.INITIAL) { b.add_header(new tsip_header_Supported("path")) } if (this.o_action_curr) { tsip_dialog.prototype.ApplyAction(b, this.o_action_curr) } if ((c = this.request_send(b)) == 0) { this.signal(tsip_event_code_e.DIALOG_REQUEST_SENT, tsk_string_format("{0}REGISTER request successfully sent", this.b_unregistering ? "un" : "")) } else { this.signal(tsip_event_code_e.DIALOG_TRANSPORT_ERROR, "Transport error") } } return c }; function __tsip_dialog_register_timer_callback(b, a) { var c = -1; if (b) { if (b.o_timerRefresh == a) { c = b.fsm_act(tsip_dialog_register_actions_e.O_REGISTER, null, null) } else { if (b.o_timerShutdown == a) { c = b.fsm_act(tsip_dialog_register_actions_e.SHUTDOWN, null, null) } } } return c } function __tsip_dialog_register_event_callback(a, b, c) { var d = -1; switch (b) { case tsip_dialog_event_type_e.I_MSG: if (c) { if (c.is_response()) { if (c.is_1xx()) { d = a.fsm_act(tsip_dialog_register_actions_e.I_1XX, c, null) } else { if (c.is_2xx()) { d = a.fsm_act(tsip_dialog_register_actions_e.I_2XX, c, null) } else { if (c.is_response_xxx(401) || c.is_response_xxx(407) || c.is_response_xxx(421) || c.is_response_xxx(494)) { d = a.fsm_act(tsip_dialog_register_actions_e.I_401_407_421_494, c, null) } else { if (c.is_response_xxx(423)) { d = a.fsm_act(tsip_dialog_register_actions_e.I_423, c, null) } else { d = a.fsm_act(tsip_dialog_register_actions_e.ERROR, c, null) } } } } } else { if (c.is_register()) { d = a.fsm_act(tsip_dialog_register_actions_e.I_REGISTER, c, null) } } } break; case tsip_dialog_event_type_e.CANCELED: d = a.fsm_act(tsip_dialog_register_actions_e.CANCEL, c, null); break; case tsip_dialog_event_type_e.TERMINATED: case tsip_dialog_event_type_e.TIMEDOUT: case tsip_dialog_event_type_e.ERROR: case tsip_dialog_event_type_e.TRANSPORT_ERROR: d = a.fsm_act(tsip_dialog_register_actions_e.TRANSPORT_ERROR, c, null); break } return d } function __tsip_dialog_register_cond_client_unregistering(b, a) { return !b.b_is_server && b.b_unregistering } function __tsip_dialog_register_cond_client_registering(b, a) { return !__tsip_dialog_register_cond_client_unregistering(b, a) } function __tsip_dialog_register_cond_silent_hangup(b, a) { return b.o_session.b_silent_hangup } function __tsip_dialog_register_cond_not_silent_hangup(b, a) { return !__tsip_dialog_register_cond_silent_hangup(b, a) } function __tsip_dialog_register_cond_silent_shutdown(b, a) { return __tsip_dialog_register_cond_silent_hangup(b, a) } function __tsip_dialog_register_cond_not_silent_shutdown(b, a) { return !__tsip_dialog_register_cond_silent_shutdown(b, a) } function __tsip_dialog_register_Started_2_InProgress_X_oRegister(a) { var c = a[0]; var b = a[2]; c.b_running = true; c.set_action_curr(b); c.signal(tsip_event_code_e.DIALOG_CONNECTING, "Connecting..."); return c.send_register(true) } function __tsip_dialog_register_InProgress_2_InProgress_X_1xx(a) { var c = a[0]; var b = a[1]; c.signal_register(tsip_event_register_type_e.AO_REGISTER, b.get_response_code(), b.get_response_phrase(), b); return c.update_with_response(b) } function __tsip_dialog_register_InProgress_2_Terminated_X_2xx(a) { var c = a[0]; var b = a[1]; c.set_last_error(b.get_response_code(), b.get_response_phrase(), b); c.signal_register(tsip_event_register_type_e.AO_UNREGISTER, b.get_response_code(), b.get_response_phrase(), b); return 0 } function __tsip_dialog_register_InProgress_2_Connected_X_2xx(a) { var d = a[0]; var b = a[1]; var k; var h = (d.e_state == tsip_dialog_state_e.INITIAL); var e = d.get_stack(); var j; var g; var c; var n; e.ao_uri_associated_uris.splice(0, e.ao_uri_associated_uris.length); e.ao_uri_service_routes.splice(0, e.ao_uri_service_routes.length); e.ao_uri_paths.splice(0, e.ao_uri_paths.length); for (j = 0; (n = b.get_header_at(tsip_header_type_e.P_Associated_URI, j)); ++j) { if (n.o_uri) { e.ao_uri_associated_uris.push(n.o_uri) } } for (j = 0; (c = b.get_header_at(tsip_header_type_e.Service_Route, j)); ++j) { if (c.o_uri) { e.ao_uri_service_routes.push(c.o_uri) } } for (j = 0; (g = b.get_header_at(tsip_header_type_e.Path, j)); ++j) { if (g.o_uri) { e.ao_uri_paths.push(g.o_uri) } } if (h) { var f = true; var m; var l = null; for (j = 0; j < e.ao_uri_associated_uris.length; ++j) { if (!(m = e.ao_uri_associated_uris[j].o_uri)) { continue } if (j == 0) { l = e.ao_uri_associated_uris[j].o_uri } if (e.identity.o_uri_pref.compare(m) == 0) { f = false; break } } if (f && l) { e.identity.o_uri_pref = l } } if ((k = d.update_with_response(b)) != 0) { return k } d.set_action_curr(null); d.i_timerRefresh = d.get_newdelay(b); d.timer_schedule("register", "Refresh"); d.signal_register(tsip_event_register_type_e.AO_REGISTER, b.get_response_code(), b.get_response_phrase(), b); if (h) { d.signal(tsip_event_code_e.DIALOG_CONNECTED, "Connected") } return k } function __tsip_dialog_register_InProgress_2_InProgress_X_401_407_421_494(a) { var d = a[0]; var b = a[1]; var c; if ((c = d.update_with_response(b))) { d.signal_register(tsip_event_register_type_e.AO_REGISTER, b.get_response_code(), b.get_response_phrase(), b); d.set_last_error(b.get_response_code(), b.get_response_phrase(), b); return c } return d.send_register(false) } function __tsip_dialog_register_InProgress_2_InProgress_X_423(a) { var e = a[0]; var c = a[1]; var b; var d = 0; b = c.get_header(tsip_header_type_e.Min_Expires); if (b) { e.i_expires = (b.i_value * 1000); d = e.send_register(false) } else { tsk_utils_log_error("Missing header: Min_Expires"); d = -1 } return d } function __tsip_dialog_register_InProgress_2_Terminated_X_300_to_699(a) { var c = a[0]; var b = a[1]; c.set_last_error(b.get_response_code(), b.get_response_phrase(), b); c.signal_register(c.b_unregistering ? tsip_event_register_type_e.AO_UNREGISTER : tsip_event_register_type_e.AO_REGISTER, b.get_response_code(), b.get_response_phrase(), b); return 0 } function __tsip_dialog_register_InProgress_2_Terminated_X_cancel(a) { var d = a[0]; var b = a[3]; var c; d.set_action_curr(b); c = d.get_layer_transac().cancel_by_dialog(d); d.signal(tsip_event_code_e.DIALOG_CANCELLED, "Registration cancelled"); return c } function __tsip_dialog_register_Connected_2_InProgress_X_oRegister(a) { var c = a[0]; var b = a[3]; c.set_action_curr(b); return c.send_register(true) } function __tsip_dialog_register_Any_2_InProgress_X_hangup(a) { var c = a[0]; var b = a[3]; c.set_action_curr(b); c.signal(tsip_event_code_e.DIALOG_TERMINATING, "Disconnecting..."); c.b_unregistering = true; return c.send_register(true) } function __tsip_dialog_register_Any_2_InProgress_X_shutdown(a) { var b = a[0]; b.timer_schedule("register", "Shutdown"); b.signal(tsip_event_code_e.DIALOG_TERMINATING, "Disconnecting..."); b.b_unregistering = true; return b.send_register(true) } function __tsip_dialog_register_Any_2_Terminated_X_transportError(a) { var b = a[0]; b.signal(tsip_event_code_e.DIALOG_TRANSPORT_ERROR, "Transport error"); return 0 } function __tsip_dialog_register_Any_2_Terminated_X_Error(a) { var c = a[0]; var b = a[1]; if (b) { c.set_last_error(b.get_response_code(), b.get_response_phrase(), b); c.signal_register(c.b_unregistering ? tsip_event_register_type_e.AO_UNREGISTER : tsip_event_register_type_e.AO_REGISTER, b.get_response_code(), b.get_response_phrase(), b) } else { c.signal(tsip_event_code_e.DIALOG_GLOBAL_ERROR, "Global error") } return 0 } function __tsip_dialog_register_onterm(a) { tsk_utils_log_info("=== REGISTER Dialog terminated ==="); a.timer_cancel("Refresh"); a.timer_cancel("Shutdown"); a.signal(tsip_event_code_e.DIALOG_TERMINATED, a.last_error.s_phrase ? a.last_error.s_phrase : "Disconnected", a.last_error.o_message); return a.deinit() } function tsip_dialog_layer(a) { if (!a) { tsk_utils_log_error("Invalid argument"); return null } this.o_stack = a; this.ao_dialogs = new Array(); this.shutdown = {}; this.shutdown.b_inprogress = false; this.shutdown.b_phase2 = false; this.b_locked = false } function tsip_dialog_layer_find_result(b, a) { this.o_dialog = b; this.b_cid_matched = a } tsip_dialog_layer.prototype.find_by_ss = function(a) { if (!a) { tsk_utils_log_error("Invalid argument"); return null } return this.find_by_ssid(a.i_id) }; tsip_dialog_layer.prototype.find_by_ssid = function(b) { var c = null; while (this.b_locked) {} this.b_locked = true; for (var a = 0; a < this.ao_dialogs.length; ++a) { if (this.ao_dialogs[a].o_session && this.ao_dialogs[a].o_session.i_id == b) { c = this.ao_dialogs[a]; break } } this.b_locked = false; return c }; tsip_dialog_layer.prototype.find = function(c, b, j, k) { var d = null; var e; var a = false; while (this.b_locked) {} this.b_locked = true; for (var g = 0; g < this.ao_dialogs.length; ++g) { e = this.ao_dialogs[g]; if (tsk_string_equals(e.s_callid, c)) { var h = (k == tsip_request_type_e.CANCEL); var f = (k == tsip_request_type_e.REGISTER); var l = (k == tsip_request_type_e.NOTIFY); a = true; if ((h || tsk_string_equals(e.s_tag_local, j)) && (!e.s_tag_remote || tsk_string_equals(e.s_tag_remote, b))) { d = e; break } if (f) { d = e; break } if (l) { d = e; break } } } this.b_locked = false; return new tsip_dialog_layer_find_result(d, a) }; tsip_dialog_layer.prototype.dialog_new = function(a, b) { var c = null; while (this.b_locked) {} this.b_locked = true; switch (a) { case tsip_dialog_type_e.REGISTER: if ((c = new tsip_dialog_register(b, null))) { this.ao_dialogs.push(c) } break; case tsip_dialog_type_e.INVITE: if ((c = new tsip_dialog_invite(b, null))) { this.ao_dialogs.push(c) } break; case tsip_dialog_type_e.MESSAGE: case tsip_dialog_type_e.INFO: case tsip_dialog_type_e.OPTIONS: case tsip_dialog_type_e.PUBLISH: case tsip_dialog_type_e.SUBSCRIBE: default: if ((c = new tsip_dialog_generic(a, b, null))) { this.ao_dialogs.push(c) } break } this.b_locked = false; return c }; tsip_dialog_layer.prototype.dialog_remove = function(b) { if (b) { while (this.b_locked) {} this.b_locked = true; for (var a = 0; a < this.ao_dialogs.length; ++a) { if (this.ao_dialogs[a] == b) { this.ao_dialogs.splice(a, 1); break } } this.b_locked = false } }; tsip_dialog_layer.prototype.handle_incoming_message = function(a) { var h = -1; var k = null; var f = this.o_stack.o_layer_transac; var d = this.find(a.o_hdr_Call_ID.s_value, a.is_response() ? a.o_hdr_To.s_tag : a.o_hdr_From.s_tag, a.is_response() ? a.o_hdr_From.s_tag : a.o_hdr_To.s_tag, a.is_request() ? a.line.request.e_type : tsip_request_type_e.NONE); var c = d.b_cid_matched; var e = d.o_dialog; if (e) { if (a.is_cancel() || a.is_ack()) { return e.callback(tsip_dialog_event_type_e.I_MSG, a) } else { k = f.transac_new(false, a, e) } } else { if (a.is_request()) { var j = null; var g = null; switch (a.line.request.e_type) { case tsip_request_type_e.MESSAGE: if ((j = new tsip_session_message(this.o_stack, tsip_session.prototype.SetInitialMessage(a)))) { g = new tsip_dialog_generic(tsip_dialog_type_e.MESSAGE, j, a.o_hdr_Call_ID ? a.o_hdr_Call_ID.s_value : null) } break; case tsip_request_type_e.INFO: tsk_utils_log_warn("Not implemented"); break; case tsip_request_type_e.OPTIONS: tsk_utils_log_error("Not implemented"); break; case tsip_request_type_e.REGISTER: tsk_utils_log_error("Not implemented"); break; case tsip_request_type_e.INVITE: if ((j = new tsip_session_invite(this.o_stack, tsip_session.prototype.SetInitialMessage(a)))) { g = new tsip_dialog_invite(j, a.o_hdr_Call_ID ? a.o_hdr_Call_ID.s_value : null) } break; default: break } if (g) { k = f.transac_new(false, a, g); this.ao_dialogs.push(g) } } } if (k) { h = k.start(a) } else { if (a.is_request()) { var l = this.o_stack.o_layer_transport; var b = null; if (l) { if (c) { b = new tsip_response(482, "Loop Detected (Check your iFCs)", a); if (b && !b.o_hdr_To.s_tag) { b.o_hdr_To.s_tag = "tag_doubango" } } else { switch (a.line.request.e_type) { case tsip_request_type_e.OPTIONS: case tsip_request_type_e.INFO: b = new tsip_response(405, "Method Not Allowed", a); break; default: b = new tsip_response(481, "Dialog/Transaction Does Not Exist", a); break } } if (b) { h = l.send(b.o_hdr_firstVia ? b.o_hdr_firstVia.s_branch : "no-branch", b) } } } } return h }; var tsip_header_type_e = { Accept: { i_id: 0, s_name: "Accept" }, Accept_Contact: { i_id: 1, s_name: "Accept-Contact" }, Accept_Encoding: { i_id: 2, s_name: "Accept-Encoding" }, Accept_Language: { i_id: 3, s_name: "Accept-Language" }, Accept_Resource_Priority: { i_id: 4, s_name: "Accept-Resource-Priority" }, Alert_Info: { i_id: 5, s_name: "Alert-Info" }, Allow: { i_id: 6, s_name: "Allow" }, Allow_Events: { i_id: 7, s_name: "Allow-Events" }, Authentication_Info: { i_id: 8, s_name: "Authentication-Info" }, Authorization: { i_id: 9, s_name: "Authorization" }, Call_ID: { i_id: 10, s_name: "Call-ID" }, Call_Info: { i_id: 11, s_name: "Call-Info" }, Contact: { i_id: 12, s_name: "Contact" }, Content_Disposition: { i_id: 13, s_name: "Content-Disposition" }, Content_Encoding: { i_id: 14, s_name: "Content-Encoding" }, Content_Language: { i_id: 15, s_name: "Content-Language" }, Content_Length: { i_id: 16, s_name: "Content-Length" }, Content_Type: { i_id: 17, s_name: "Content-Type" }, CSeq: { i_id: 18, s_name: "CSeq" }, Date: { i_id: 19, s_name: "Date" }, Dummy: { i_id: 20, s_name: null }, Error_Info: { i_id: 21, s_name: "Error-Info" }, Event: { i_id: 22, s_name: "Event" }, Expires: { i_id: 23, s_name: "Expires" }, From: { i_id: 24, s_name: "From" }, History_Info: { i_id: 25, s_name: "History-Info" }, Identity: { i_id: 26, s_name: "Identity" }, Identity_Info: { i_id: 27, s_name: "Identity-Info" }, In_Reply_To: { i_id: 28, s_name: "In-Reply-To" }, Join: { i_id: 29, s_name: "Join" }, Max_Forwards: { i_id: 30, s_name: "Max-Forwards" }, MIME_Version: { i_id: 31, s_name: "MIME-Version" }, Min_Expires: { i_id: 32, s_name: "Min-Expires" }, Min_SE: { i_id: 33, s_name: "Min-SE" }, Organization: { i_id: 34, s_name: "Organization" }, Path: { i_id: 35, s_name: "Path" }, Priority: { i_id: 36, s_name: "Priority" }, Privacy: { i_id: 37, s_name: "Privacy" }, Proxy_Authenticate: { i_id: 38, s_name: "Proxy-Authenticate" }, Proxy_Authorization: { i_id: 39, s_name: "Proxy-Authorization" }, Proxy_Require: { i_id: 40, s_name: "Proxy-Require" }, RAck: { i_id: 41, s_name: "RAck" }, Reason: { i_id: 42, s_name: "Reason" }, Record_Route: { i_id: 43, s_name: "Record-Route" }, Refer_Sub: { i_id: 44, s_name: "Refer-Sub" }, Refer_To: { i_id: 45, s_name: "Refer-To" }, Referred_By: { i_id: 46, s_name: "Referred-By" }, Reject_Contact: { i_id: 47, s_name: "Reject-Contact" }, Replaces: { i_id: 48, s_name: "Replaces" }, Reply_To: { i_id: 49, s_name: "Reply-To" }, Request_Disposition: { i_id: 50, s_name: "Request-Disposition" }, Require: { i_id: 51, s_name: "Require" }, Resource_Priority: { i_id: 52, s_name: "Resource-Priority" }, Retry_After: { i_id: 53, s_name: "Retry-After" }, Route: { i_id: 54, s_name: "Route" }, RSeq: { i_id: 55, s_name: "RSeq" }, Security_Client: { i_id: 56, s_name: "Security-Client" }, Security_Server: { i_id: 57, s_name: "Security-Server" }, Security_Verify: { i_id: 58, s_name: "Security-Verify" }, Server: { i_id: 59, s_name: "Server" }, Service_Route: { i_id: 60, s_name: "Service-Route" }, Session_Expires: { i_id: 61, s_name: "Session-Expires" }, SIP_ETag: { i_id: 62, s_name: "SIP-ETag" }, SIP_If_Match: { i_id: 63, s_name: "SIP-If-Match" }, Subject: { i_id: 64, s_name: "Subject" }, Subscription_State: { i_id: 65, s_name: "Subscription-State" }, Supported: { i_id: 66, s_name: "Supported" }, Target_Dialog: { i_id: 67, s_name: "Target-Dialog" }, Timestamp: { i_id: 68, s_name: "Timestamp" }, To: { i_id: 69, s_name: "To" }, Unsupported: { i_id: 70, s_name: "Unsupported" }, User_Agent: { i_id: 71, s_name: "User-Agent" }, Via: { i_id: 72, s_name: "Via" }, Warning: { i_id: 73, s_name: "Warning " }, WWW_Authenticate: { i_id: 74, s_name: "WWW-Authenticate" }, P_Access_Network_Info: { i_id: 75, s_name: "P-Access-Network-Info" }, P_Answer_State: { i_id: 76, s_name: "P-Answer-State" }, P_Asserted_Identity: { i_id: 77, s_name: "P-Asserted-Identity" }, P_Associated_URI: { i_id: 78, s_name: "P-Associated-URI" }, P_Called_Party_ID: { i_id: 79, s_name: "P-Called-Party-ID" }, P_Charging_Function_Addresses: { i_id: 80, s_name: "P-Charging-Function-Addresses" }, P_Charging_Vector: { i_id: 81, s_name: "P-Charging-Vector" }, P_DCS_Billing_Info: { i_id: 82, s_name: "P-DCS-Billing-Info" }, P_DCS_LAES: { i_id: 83, s_name: "P-DCS-LAES" }, P_DCS_OSPS: { i_id: 84, s_name: "P-DCS-OSPS" }, P_DCS_Redirect: { i_id: 85, s_name: "P-DCS-Redirect" }, P_DCS_Trace_Party_ID: { i_id: 86, s_name: "P-DCS-Trace-Party-ID" }, P_Early_Media: { i_id: 87, s_name: "P-Early-Media" }, P_Media_Authorization: { i_id: 88, s_name: "P-Media-Authorization" }, P_Preferred_Identity: { i_id: 89, s_name: "P-Preferred-Identity" }, P_Profile_Key: { i_id: 90, s_name: "P-Profile-Key" }, P_User_Database: { i_id: 91, s_name: "P-User-Database" }, P_Visited_Network_ID: { i_id: 92, s_name: "P-Visited-Network-ID" } }; function tsip_header(a) { this.e_type = a; this.ao_params = new Array() } tsip_header.prototype.get_name = function() { if (this.e_type.i_id == tsip_header_type_e.Dummy.i_id) { return this.s_name } return this.e_type.s_name }; tsip_header.prototype.get_param_separator = function() { switch (this.e_type) { case tsip_header_type_e.Authorization: case tsip_header_type_e.Proxy_Authorization: case tsip_header_type_e.Proxy_Authenticate: case tsip_header_type_e.WWW_Authenticate: return ","; default: return ";" } }; tsip_header.prototype.add_param = function(b, a) { tsk_params_add(this.ao_params, b, a) }; tsip_header.prototype.tostring_full = function() { var c; var b = tsk_string_format("{0}: ", this.get_name()); b += this; for (var a = 0; a < this.ao_params.length; ++a) { c = this.get_param_separator(); b += tsk_string_format("{0}{1}", c, tsk_param_tostring(this.ao_params[a])) } b += "\r\n"; return b }; tsip_header.prototype.IndexOfByType = function(c, a) { if (c) { for (var b = 0; b < c.length; ++b) { if (c[b].e_type.i_id == a.i_id) { return b } } } return -1 }; tsip_header.prototype.IndexOfByName = function(e, d) { if (e && d) { var c = d.toLowerCase(); for (var b = 0; b < e.length; ++b) { var a = e[b].get_name(); if (a && a.toLowerCase() == c) { return b } } } return -1 }; tsip_header.prototype.FindByType = function(c, a) { if (c) { for (var b = 0; b < c.length; ++b) { if (c[b].e_type.i_id == a.i_id) { return c[b] } } } return null }; if (!window.__b_release_mode) { tsip_api_add_js_scripts("head", "src/tinySIP/src/headers/tsip_header_Int.js", "src/tinySIP/src/headers/tsip_header_NameAddr.js", "src/tinySIP/src/headers/tsip_header_Str.js", "src/tinySIP/src/headers/tsip_header_StrArray.js", "src/tinySIP/src/headers/tsip_header_Authorization.js", "src/tinySIP/src/headers/tsip_header_Contact.js", "src/tinySIP/src/headers/tsip_header_Content_Type.js", "src/tinySIP/src/headers/tsip_header_CSeq.js", "src/tinySIP/src/headers/tsip_header_RAck.js", "src/tinySIP/src/headers/tsip_header_Refer_Sub.js", "src/tinySIP/src/headers/tsip_header_Session_Expires.js", "src/tinySIP/src/headers/tsip_header_Subscription_State.js", "src/tinySIP/src/headers/tsip_header_Via.js", "src/tinySIP/src/headers/tsip_header_WWW_Authenticate.js") } var TSIP_HEADER_MAX_FORWARDS_DEFAULT = 70; tsip_header_Int.prototype = Object.create(tsip_header.prototype); tsip_header_Content_Length.prototype = Object.create(tsip_header_Int.prototype); tsip_header_Expires.prototype = Object.create(tsip_header_Int.prototype); tsip_header_Max_Forwards.prototype = Object.create(tsip_header_Int.prototype); tsip_header_Min_Expires.prototype = Object.create(tsip_header_Int.prototype); tsip_header_Min_SE.prototype = Object.create(tsip_header_Int.prototype); tsip_header_RSeq.prototype = Object.create(tsip_header_Int.prototype); _tsip_machine_parser_header_Int_actions = [0, 1, 0, 1, 1, 1, 2, 1, 3, 1, 4, 1, 5, 1, 6, 1, 7, 1, 8, 1, 9]; _tsip_machine_parser_header_Int_key_offsets = [0, 0, 10, 12, 14, 16, 18, 20, 22, 23, 25, 27, 29, 31, 33, 35, 38, 41, 46, 47, 49, 53, 60, 65, 66, 68, 72, 89, 90, 92, 108, 126, 132, 133, 135, 140, 159, 160, 162, 181, 182, 184, 187, 195, 196, 198, 203, 204, 210, 227, 234, 242, 250, 258, 260, 267, 276, 278, 281, 283, 286, 288, 291, 294, 295, 298, 299, 302, 303, 312, 321, 329, 337, 345, 353, 355, 361, 370, 379, 388, 390, 393, 396, 397, 398, 400, 402, 404, 406, 408, 410, 413, 417, 419, 420, 422, 424, 426, 428, 430, 432, 434, 436, 439, 441, 442, 446, 448, 450, 452, 454, 456, 458, 461, 463, 466, 468, 470, 472, 475]; _tsip_machine_parser_header_Int_trans_keys = [67, 69, 76, 77, 82, 99, 101, 108, 109, 114, 79, 111, 78, 110, 84, 116, 69, 101, 78, 110, 84, 116, 45, 76, 108, 69, 101, 78, 110, 71, 103, 84, 116, 72, 104, 9, 32, 58, 9, 32, 58, 9, 13, 32, 48, 57, 10, 9, 32, 9, 32, 48, 57, 9, 13, 32, 44, 59, 48, 57, 9, 13, 32, 44, 59, 10, 9, 32, 9, 32, 44, 59, 9, 13, 32, 33, 37, 39, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 10, 9, 32, 9, 32, 33, 37, 39, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 13, 32, 33, 37, 39, 44, 59, 61, 126, 42, 46, 48, 57, 65, 90, 95, 122, 9, 13, 32, 44, 59, 61, 10, 9, 32, 9, 32, 44, 59, 61, 9, 13, 32, 33, 34, 37, 39, 91, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 10, 9, 32, 9, 13, 32, 33, 34, 37, 39, 91, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 10, 9, 32, 9, 32, 34, 9, 13, 34, 92, 32, 126, 128, 255, 10, 9, 32, 9, 13, 32, 44, 59, 10, 0, 9, 11, 12, 14, 127, 9, 13, 32, 33, 37, 39, 44, 59, 126, 42, 46, 48, 57, 65, 90, 95, 122, 58, 48, 57, 65, 70, 97, 102, 58, 93, 48, 57, 65, 70, 97, 102, 58, 93, 48, 57, 65, 70, 97, 102, 58, 93, 48, 57, 65, 70, 97, 102, 58, 93, 58, 48, 57, 65, 70, 97, 102, 46, 58, 93, 48, 57, 65, 70, 97, 102, 48, 57, 46, 48, 57, 48, 57, 46, 48, 57, 48, 57, 93, 48, 57, 93, 48, 57, 93, 46, 48, 57, 46, 46, 48, 57, 46, 46, 58, 93, 48, 57, 65, 70, 97, 102, 46, 58, 93, 48, 57, 65, 70, 97, 102, 58, 93, 48, 57, 65, 70, 97, 102, 58, 93, 48, 57, 65, 70, 97, 102, 58, 93, 48, 57, 65, 70, 97, 102, 58, 93, 48, 57, 65, 70, 97, 102, 58, 93, 48, 57, 65, 70, 97, 102, 46, 58, 93, 48, 57, 65, 70, 97, 102, 46, 58, 93, 48, 57, 65, 70, 97, 102, 46, 58, 93, 48, 57, 65, 70, 97, 102, 48, 57, 46, 48, 57, 46, 48, 57, 46, 58, 88, 120, 80, 112, 73, 105, 82, 114, 69, 101, 83, 115, 9, 32, 58, 65, 73, 97, 105, 88, 120, 45, 70, 102, 79, 111, 82, 114, 87, 119, 65, 97, 82, 114, 68, 100, 83, 115, 9, 32, 58, 78, 110, 45, 69, 83, 101, 115, 88, 120, 80, 112, 73, 105, 82, 114, 69, 101, 83, 115, 9, 32, 58, 69, 101, 9, 32, 58, 83, 115, 69, 101, 81, 113, 9, 32, 58, 0]; _tsip_machine_parser_header_Int_single_lengths = [0, 10, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 3, 3, 3, 1, 2, 2, 5, 5, 1, 2, 4, 7, 1, 2, 6, 10, 6, 1, 2, 5, 9, 1, 2, 9, 1, 2, 3, 4, 1, 2, 5, 1, 0, 9, 1, 2, 2, 2, 2, 1, 3, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 3, 3, 2, 2, 2, 2, 2, 0, 3, 3, 3, 0, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 3, 4, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 3, 2, 1, 4, 2, 2, 2, 2, 2, 2, 3, 2, 3, 2, 2, 2, 3, 0]; _tsip_machine_parser_header_Int_range_lengths = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 5, 0, 0, 5, 4, 0, 0, 0, 0, 5, 0, 0, 5, 0, 0, 0, 2, 0, 0, 0, 0, 3, 4, 3, 3, 3, 3, 0, 3, 3, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 3, 3, 3, 3, 3, 3, 0, 3, 3, 3, 3, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]; _tsip_machine_parser_header_Int_index_offsets = [0, 0, 11, 14, 17, 20, 23, 26, 29, 31, 34, 37, 40, 43, 46, 49, 53, 57, 62, 64, 67, 71, 78, 84, 86, 89, 94, 107, 109, 112, 124, 139, 146, 148, 151, 157, 172, 174, 177, 192, 194, 197, 201, 208, 210, 213, 219, 221, 225, 239, 244, 250, 256, 262, 265, 270, 277, 279, 282, 284, 287, 289, 292, 295, 297, 300, 302, 305, 307, 314, 321, 327, 333, 339, 345, 348, 352, 359, 366, 373, 375, 378, 381, 383, 385, 388, 391, 394, 397, 400, 403, 407, 412, 415, 417, 420, 423, 426, 429, 432, 435, 438, 441, 445, 448, 450, 455, 458, 461, 464, 467, 470, 473, 477, 480, 484, 487, 490, 493, 497]; _tsip_machine_parser_header_Int_indicies = [0, 2, 3, 4, 5, 0, 2, 3, 4, 5, 1, 6, 6, 1, 7, 7, 1, 8, 8, 1, 9, 9, 1, 10, 10, 1, 11, 11, 1, 12, 1, 13, 13, 1, 14, 14, 1, 15, 15, 1, 16, 16, 1, 17, 17, 1, 3, 3, 1, 18, 18, 19, 1, 20, 20, 21, 1, 21, 22, 21, 23, 1, 24, 1, 25, 25, 1, 25, 25, 23, 1, 26, 27, 26, 28, 28, 29, 1, 30, 31, 30, 32, 32, 1, 33, 1, 34, 34, 1, 34, 34, 32, 32, 1, 32, 35, 32, 36, 36, 36, 36, 36, 36, 36, 36, 36, 1, 37, 1, 38, 38, 1, 38, 38, 36, 36, 36, 36, 36, 36, 36, 36, 36, 1, 39, 40, 39, 41, 41, 41, 42, 42, 43, 41, 41, 41, 41, 41, 1, 44, 45, 44, 32, 32, 43, 1, 46, 1, 47, 47, 1, 47, 47, 32, 32, 43, 1, 43, 48, 43, 49, 50, 49, 49, 51, 49, 49, 49, 49, 49, 49, 1, 52, 1, 53, 53, 1, 53, 54, 53, 49, 50, 49, 49, 51, 49, 49, 49, 49, 49, 49, 1, 55, 1, 56, 56, 1, 56, 56, 50, 1, 50, 57, 58, 59, 50, 50, 1, 60, 1, 50, 50, 1, 61, 40, 61, 42, 42, 1, 62, 1, 50, 50, 50, 1, 61, 40, 61, 49, 49, 49, 42, 42, 49, 49, 49, 49, 49, 1, 64, 63, 63, 63, 1, 66, 58, 65, 65, 65, 1, 66, 58, 67, 67, 67, 1, 66, 58, 68, 68, 68, 1, 66, 58, 1, 70, 69, 63, 63, 1, 71, 66, 58, 72, 65, 65, 1, 73, 1, 74, 75, 1, 76, 1, 77, 78, 1, 79, 1, 58, 80, 1, 58, 81, 1, 58, 1, 77, 82, 1, 77, 1, 74, 83, 1, 74, 1, 71, 66, 58, 84, 67, 67, 1, 71, 66, 58, 68, 68, 68, 1, 86, 58, 85, 85, 85, 1, 88, 58, 87, 87, 87, 1, 88, 58, 89, 89, 89, 1, 88, 58, 90, 90, 90, 1, 88, 58, 1, 91, 85, 85, 1, 71, 88, 58, 92, 87, 87, 1, 71, 88, 58, 93, 89, 89, 1, 71, 88, 58, 90, 90, 90, 1, 94, 1, 71, 95, 1, 71, 96, 1, 71, 1, 70, 1, 97, 97, 1, 98, 98, 1, 99, 99, 1, 100, 100, 1, 101, 101, 1, 102, 102, 1, 103, 103, 104, 1, 105, 106, 105, 106, 1, 107, 107, 1, 108, 1, 109, 109, 1, 110, 110, 1, 111, 111, 1, 112, 112, 1, 113, 113, 1, 114, 114, 1, 115, 115, 1, 116, 116, 1, 117, 117, 118, 1, 119, 119, 1, 120, 1, 121, 122, 121, 122, 1, 123, 123, 1, 124, 124, 1, 125, 125, 1, 126, 126, 1, 127, 127, 1, 128, 128, 1, 129, 129, 130, 1, 131, 131, 1, 132, 132, 133, 1, 134, 134, 1, 135, 135, 1, 136, 136, 1, 137, 137, 138, 1, 1, 0]; _tsip_machine_parser_header_Int_trans_targs = [2, 0, 84, 15, 91, 115, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 16, 17, 16, 17, 18, 21, 19, 20, 22, 46, 26, 21, 22, 23, 26, 24, 25, 27, 30, 28, 29, 31, 46, 30, 26, 35, 31, 32, 33, 34, 36, 48, 42, 49, 37, 38, 39, 40, 41, 43, 45, 47, 44, 22, 119, 50, 83, 51, 54, 52, 53, 55, 70, 56, 68, 57, 58, 66, 59, 60, 64, 61, 62, 63, 65, 67, 69, 71, 79, 72, 75, 73, 74, 76, 77, 78, 80, 81, 82, 85, 86, 87, 88, 89, 90, 16, 17, 92, 103, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 16, 17, 104, 105, 106, 113, 107, 108, 109, 110, 111, 112, 16, 17, 114, 16, 17, 116, 117, 118, 16, 17]; _tsip_machine_parser_header_Int_trans_actions = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 0, 0, 0, 1, 0, 0, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 5, 5, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 13, 0, 15, 15, 0, 0, 0, 17, 17]; tsip_machine_parser_header_Int_start = 1; tsip_machine_parser_header_Int_first_final = 119; tsip_machine_parser_header_Int_error = 0; tsip_machine_parser_header_Int_en_main = 1; function tsip_header_Int(b, a) { tsip_header.call(this, b); this.i_value = a } tsip_header_Int.prototype.toString = function() { return typeof this.i_value == "undefined" ? null : this.i_value.toString() }; tsip_header_Int.prototype.Parse = function(l) { var e = 0; var j = 0; var v = l.length; var g = v; var w = tsk_buff_str2ib(l); var u; var m = null; e = tsip_machine_parser_header_Int_start; var f, n, b, d, c, r, k; var o, h, a, q, t; var s; f = n = b = r = k = null; o = 0; h = 10; a = 15; q = 20; t = 30; s = 40; while (true) { _trigger_goto = false; if (o <= 0) { if (j == v) { o = t; continue } if (e == 0) { o = s; continue } } if (o <= h) { b = _tsip_machine_parser_header_Int_key_offsets[e]; n = _tsip_machine_parser_header_Int_index_offsets[e]; f = _tsip_machine_parser_header_Int_single_lengths[e]; _break_match = false; do { if (f > 0) { _lower = b; _upper = b + f - 1; while (true) { if (_upper < _lower) { break } _mid = _lower + ((_upper - _lower) >> 1); if (w[j] < _tsip_machine_parser_header_Int_trans_keys[_mid]) { _upper = _mid - 1 } else { if (w[j] > _tsip_machine_parser_header_Int_trans_keys[_mid]) { _lower = _mid + 1 } else { n += (_mid - b); _break_match = true; break } } } if (_break_match) { break } b += f; n += f } f = _tsip_machine_parser_header_Int_range_lengths[e]; if (f > 0) { _lower = b; _upper = b + (f << 1) - 2; while (true) { if (_upper < _lower) { break } _mid = _lower + (((_upper - _lower) >> 1) & ~1); if (w[j] < _tsip_machine_parser_header_Int_trans_keys[_mid]) { _upper = _mid - 2 } else { if (w[j] > _tsip_machine_parser_header_Int_trans_keys[_mid + 1]) { _lower = _mid + 2 } else { n += ((_mid - b) >> 1); _break_match = true; break } } } if (_break_match) { break } n += f } } while (false); n = _tsip_machine_parser_header_Int_indicies[n]; e = _tsip_machine_parser_header_Int_trans_targs[n]; if (_tsip_machine_parser_header_Int_trans_actions[n] != 0) { r = _tsip_machine_parser_header_Int_trans_actions[n]; k = _tsip_machine_parser_header_Int_actions[r]; r += 1; while (k > 0) { k -= 1; r += 1; switch (_tsip_machine_parser_header_Int_actions[r - 1]) { case 0: u = j; break; case 1: if (m) { m.i_value = tsk_ragel_parser_get_int(l, j, u) } break; case 2: if (m) { tsk_ragel_add_param(l, j, u, m.ao_params) } break; case 3: m = new tsip_header_Content_Length(); break; case 4: m = new tsip_header_Expires(); break; case 5: m = new tsip_header_Max_Forwards(); break; case 6: m = new tsip_header_Min_Expires(); break; case 7: m = new tsip_header_Min_SE(); break; case 8: m = new tsip_header_RSeq(); break; case 9: break } } } if (_trigger_goto) { continue } } if (o <= q) { if (e == 0) { o = s; continue } j += 1; if (j != v) { o = h; continue } } if (o <= t) {} if (o <= s) { break } } if (e < 119) { tsk_utils_log_error("Failed to parse header: " + l); return null } return m }; function tsip_header_Content_Length(a) { tsip_header_Int.call(this, tsip_header_type_e.Content_Length, a) } function tsip_header_Expires(a) { tsip_header_Int.call(this, tsip_header_type_e.Expires, a) } function tsip_header_Max_Forwards(a) { tsip_header_Int.call(this, tsip_header_type_e.Max_Forwards, a) } function tsip_header_Min_Expires(a) { tsip_header_Int.call(this, tsip_header_type_e.Min_Expires, a) } function tsip_header_Min_SE(a) { tsip_header_Int.call(this, tsip_header_type_e.Min_SE, a) } function tsip_header_RSeq(a) { tsip_header_Int.call(this, tsip_header_type_e.RSeq, a) } tsip_header_NameAddr.prototype = Object.create(tsip_header.prototype); tsip_header_NameAddr.prototype.s_display_name = null; tsip_header_NameAddr.prototype.o_uri = null; tsip_header_NameAddr.prototype.s_tag = null; tsip_header_From.prototype = Object.create(tsip_header_NameAddr.prototype); tsip_header_To.prototype = Object.create(tsip_header_NameAddr.prototype); tsip_header_Refer_To.prototype = Object.create(tsip_header_NameAddr.prototype); tsip_header_Referred_By.prototype = Object.create(tsip_header_NameAddr.prototype); _tsip_machine_parser_header_NameAddr_actions = [0, 1, 0, 1, 1, 1, 2, 1, 3, 1, 4, 1, 5, 1, 6, 1, 7, 1, 8, 1, 9]; _tsip_machine_parser_header_NameAddr_key_offsets = [0, 0, 8, 11, 14, 35, 36, 38, 59, 60, 62, 65, 69, 81, 84, 86, 89, 93, 97, 98, 100, 103, 122, 123, 125, 143, 162, 167, 168, 170, 174, 193, 194, 196, 215, 216, 218, 221, 229, 230, 232, 236, 237, 243, 261, 268, 276, 284, 292, 294, 301, 310, 312, 315, 317, 320, 322, 325, 328, 329, 332, 333, 336, 337, 346, 355, 363, 371, 379, 387, 389, 395, 404, 413, 422, 424, 427, 430, 431, 432, 453, 474, 493, 498, 499, 501, 505, 524, 525, 527, 546, 564, 581, 599, 603, 604, 606, 614, 615, 617, 621, 627, 647, 666, 671, 673, 679, 684, 686, 688, 691, 696, 698, 700, 702, 705, 707, 709, 712, 714, 716, 717, 719, 721, 726, 729]; _tsip_machine_parser_header_NameAddr_trans_keys = [66, 70, 82, 84, 98, 102, 114, 116, 9, 32, 58, 9, 32, 58, 9, 13, 32, 33, 34, 37, 39, 60, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 96, 97, 122, 10, 9, 32, 9, 13, 32, 33, 34, 37, 39, 60, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 96, 97, 122, 10, 9, 32, 9, 32, 60, 65, 90, 97, 122, 9, 32, 43, 58, 45, 46, 48, 57, 65, 90, 97, 122, 9, 32, 58, 0, 65535, 62, 0, 65535, 9, 13, 32, 59, 9, 13, 32, 59, 10, 9, 32, 9, 32, 59, 9, 13, 32, 33, 37, 39, 84, 116, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 10, 9, 32, 9, 32, 33, 37, 39, 84, 116, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 13, 32, 33, 37, 39, 59, 61, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 13, 32, 59, 61, 10, 9, 32, 9, 32, 59, 61, 9, 13, 32, 33, 34, 37, 39, 91, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 10, 9, 32, 9, 13, 32, 33, 34, 37, 39, 91, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 10, 9, 32, 9, 32, 34, 9, 13, 34, 92, 32, 126, 128, 255, 10, 9, 32, 9, 13, 32, 59, 10, 0, 9, 11, 12, 14, 127, 9, 13, 32, 33, 37, 39, 59, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 58, 48, 57, 65, 70, 97, 102, 58, 93, 48, 57, 65, 70, 97, 102, 58, 93, 48, 57, 65, 70, 97, 102, 58, 93, 48, 57, 65, 70, 97, 102, 58, 93, 58, 48, 57, 65, 70, 97, 102, 46, 58, 93, 48, 57, 65, 70, 97, 102, 48, 57, 46, 48, 57, 48, 57, 46, 48, 57, 48, 57, 93, 48, 57, 93, 48, 57, 93, 46, 48, 57, 46, 46, 48, 57, 46, 46, 58, 93, 48, 57, 65, 70, 97, 102, 46, 58, 93, 48, 57, 65, 70, 97, 102, 58, 93, 48, 57, 65, 70, 97, 102, 58, 93, 48, 57, 65, 70, 97, 102, 58, 93, 48, 57, 65, 70, 97, 102, 58, 93, 48, 57, 65, 70, 97, 102, 58, 93, 48, 57, 65, 70, 97, 102, 46, 58, 93, 48, 57, 65, 70, 97, 102, 46, 58, 93, 48, 57, 65, 70, 97, 102, 46, 58, 93, 48, 57, 65, 70, 97, 102, 48, 57, 46, 48, 57, 46, 48, 57, 46, 58, 9, 13, 32, 33, 37, 39, 59, 61, 65, 97, 126, 42, 43, 45, 46, 48, 57, 66, 90, 95, 122, 9, 13, 32, 33, 37, 39, 59, 61, 71, 103, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 13, 32, 33, 37, 39, 59, 61, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 13, 32, 59, 61, 10, 9, 32, 9, 32, 59, 61, 9, 13, 32, 33, 34, 37, 39, 91, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 10, 9, 32, 9, 13, 32, 33, 34, 37, 39, 91, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 13, 32, 33, 37, 39, 59, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 13, 32, 33, 37, 39, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 13, 32, 33, 37, 39, 60, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 13, 32, 60, 10, 9, 32, 9, 13, 34, 92, 32, 126, 128, 255, 10, 9, 32, 9, 13, 32, 60, 0, 9, 11, 12, 14, 127, 9, 13, 32, 33, 37, 39, 42, 43, 58, 126, 45, 46, 48, 57, 65, 90, 95, 96, 97, 122, 9, 13, 32, 33, 37, 39, 58, 60, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 13, 32, 58, 60, 0, 65535, 9, 13, 32, 59, 0, 65535, 9, 32, 58, 82, 114, 79, 111, 77, 109, 9, 32, 58, 9, 32, 58, 69, 101, 70, 102, 69, 101, 82, 114, 45, 82, 114, 84, 116, 79, 111, 9, 32, 58, 69, 101, 68, 100, 45, 66, 98, 89, 121, 9, 32, 58, 79, 111, 9, 32, 58, 0]; _tsip_machine_parser_header_NameAddr_single_lengths = [0, 8, 3, 3, 9, 1, 2, 9, 1, 2, 3, 0, 4, 3, 0, 1, 4, 4, 1, 2, 3, 9, 1, 2, 8, 9, 5, 1, 2, 4, 9, 1, 2, 9, 1, 2, 3, 4, 1, 2, 4, 1, 0, 8, 1, 2, 2, 2, 2, 1, 3, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 3, 3, 2, 2, 2, 2, 2, 0, 3, 3, 3, 0, 1, 1, 1, 1, 11, 11, 9, 5, 1, 2, 4, 9, 1, 2, 9, 8, 7, 8, 4, 1, 2, 4, 1, 2, 4, 0, 10, 9, 5, 0, 4, 5, 2, 2, 3, 5, 2, 2, 2, 3, 2, 2, 3, 2, 2, 1, 2, 2, 5, 3, 0]; _tsip_machine_parser_header_NameAddr_range_lengths = [0, 0, 0, 0, 6, 0, 0, 6, 0, 0, 0, 2, 4, 0, 1, 1, 0, 0, 0, 0, 0, 5, 0, 0, 5, 5, 0, 0, 0, 0, 5, 0, 0, 5, 0, 0, 0, 2, 0, 0, 0, 0, 3, 5, 3, 3, 3, 3, 0, 3, 3, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 3, 3, 3, 3, 3, 3, 0, 3, 3, 3, 3, 1, 1, 1, 0, 0, 5, 5, 5, 0, 0, 0, 0, 5, 0, 0, 5, 5, 5, 5, 0, 0, 0, 2, 0, 0, 0, 3, 5, 5, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]; _tsip_machine_parser_header_NameAddr_index_offsets = [0, 0, 9, 13, 17, 33, 35, 38, 54, 56, 59, 63, 66, 75, 79, 81, 84, 89, 94, 96, 99, 103, 118, 120, 123, 137, 152, 158, 160, 163, 168, 183, 185, 188, 203, 205, 208, 212, 219, 221, 224, 229, 231, 235, 249, 254, 260, 266, 272, 275, 280, 287, 289, 292, 294, 297, 299, 302, 305, 307, 310, 312, 315, 317, 324, 331, 337, 343, 349, 355, 358, 362, 369, 376, 383, 385, 388, 391, 393, 395, 412, 429, 444, 450, 452, 455, 460, 475, 477, 480, 495, 509, 522, 536, 541, 543, 546, 553, 555, 558, 563, 567, 583, 598, 604, 606, 612, 618, 621, 624, 628, 634, 637, 640, 643, 647, 650, 653, 657, 660, 663, 665, 668, 671, 677, 681]; _tsip_machine_parser_header_NameAddr_indicies = [0, 2, 3, 4, 0, 2, 3, 4, 1, 5, 5, 6, 1, 7, 7, 8, 1, 8, 9, 8, 10, 11, 10, 10, 12, 10, 10, 10, 10, 13, 10, 13, 1, 14, 1, 15, 15, 1, 15, 16, 15, 10, 11, 10, 10, 12, 10, 10, 10, 10, 13, 10, 13, 1, 17, 1, 18, 18, 1, 18, 18, 12, 1, 19, 19, 1, 20, 20, 21, 22, 21, 21, 21, 21, 1, 20, 20, 22, 1, 23, 1, 24, 23, 1, 25, 26, 25, 27, 1, 25, 28, 25, 27, 1, 29, 1, 30, 30, 1, 30, 30, 27, 1, 27, 31, 27, 32, 32, 32, 33, 33, 32, 32, 32, 32, 32, 32, 1, 34, 1, 35, 35, 1, 35, 35, 32, 32, 32, 33, 33, 32, 32, 32, 32, 32, 32, 1, 36, 37, 36, 38, 38, 38, 39, 40, 38, 38, 38, 38, 38, 38, 1, 41, 42, 41, 27, 40, 1, 43, 1, 44, 44, 1, 44, 44, 27, 40, 1, 40, 45, 40, 46, 47, 46, 46, 48, 46, 46, 46, 46, 46, 46, 1, 49, 1, 50, 50, 1, 50, 51, 50, 46, 47, 46, 46, 48, 46, 46, 46, 46, 46, 46, 1, 52, 1, 53, 53, 1, 53, 53, 47, 1, 47, 54, 55, 56, 47, 47, 1, 57, 1, 47, 47, 1, 58, 37, 58, 39, 1, 59, 1, 47, 47, 47, 1, 58, 37, 58, 46, 46, 46, 39, 46, 46, 46, 46, 46, 46, 1, 61, 60, 60, 60, 1, 63, 55, 62, 62, 62, 1, 63, 55, 64, 64, 64, 1, 63, 55, 65, 65, 65, 1, 63, 55, 1, 67, 66, 60, 60, 1, 68, 63, 55, 69, 62, 62, 1, 70, 1, 71, 72, 1, 73, 1, 74, 75, 1, 76, 1, 55, 77, 1, 55, 78, 1, 55, 1, 74, 79, 1, 74, 1, 71, 80, 1, 71, 1, 68, 63, 55, 81, 64, 64, 1, 68, 63, 55, 65, 65, 65, 1, 83, 55, 82, 82, 82, 1, 85, 55, 84, 84, 84, 1, 85, 55, 86, 86, 86, 1, 85, 55, 87, 87, 87, 1, 85, 55, 1, 88, 82, 82, 1, 68, 85, 55, 89, 84, 84, 1, 68, 85, 55, 90, 86, 86, 1, 68, 85, 55, 87, 87, 87, 1, 91, 1, 68, 92, 1, 68, 93, 1, 68, 1, 67, 1, 36, 37, 36, 38, 38, 38, 39, 40, 94, 94, 38, 38, 38, 38, 38, 38, 1, 36, 37, 36, 38, 38, 38, 39, 40, 95, 95, 38, 38, 38, 38, 38, 38, 1, 96, 37, 96, 38, 38, 38, 39, 97, 38, 38, 38, 38, 38, 38, 1, 98, 99, 98, 27, 97, 1, 100, 1, 101, 101, 1, 101, 101, 27, 97, 1, 97, 102, 97, 103, 47, 103, 103, 48, 103, 103, 103, 103, 103, 103, 1, 104, 1, 105, 105, 1, 105, 51, 105, 103, 47, 103, 103, 48, 103, 103, 103, 103, 103, 103, 1, 106, 107, 106, 108, 108, 108, 109, 108, 108, 108, 108, 108, 108, 1, 110, 111, 110, 112, 112, 112, 112, 112, 112, 112, 112, 112, 1, 113, 114, 113, 112, 112, 112, 115, 112, 112, 112, 112, 112, 112, 1, 116, 16, 116, 12, 1, 117, 1, 110, 110, 1, 118, 119, 120, 121, 118, 118, 1, 122, 1, 118, 118, 1, 113, 114, 113, 115, 1, 118, 118, 118, 1, 123, 111, 123, 112, 112, 112, 112, 124, 125, 112, 124, 124, 124, 112, 124, 1, 126, 114, 126, 112, 112, 112, 125, 115, 112, 112, 112, 112, 112, 112, 1, 127, 16, 127, 125, 12, 1, 128, 1, 129, 130, 129, 131, 128, 1, 132, 132, 133, 134, 134, 1, 135, 135, 1, 136, 136, 1, 132, 132, 133, 1, 137, 137, 138, 139, 139, 1, 140, 140, 1, 141, 141, 1, 142, 142, 1, 143, 144, 144, 1, 145, 145, 1, 146, 146, 1, 137, 137, 138, 1, 147, 147, 1, 148, 148, 1, 149, 1, 150, 150, 1, 0, 0, 1, 151, 151, 152, 153, 153, 1, 151, 151, 152, 1, 1, 0]; _tsip_machine_parser_header_NameAddr_trans_targs = [2, 0, 106, 110, 123, 3, 4, 3, 4, 5, 91, 96, 11, 101, 6, 7, 8, 9, 10, 12, 13, 12, 14, 15, 16, 17, 41, 21, 18, 19, 20, 22, 25, 79, 23, 24, 26, 41, 25, 21, 30, 26, 27, 28, 29, 31, 43, 37, 44, 32, 33, 34, 35, 36, 38, 40, 42, 39, 17, 125, 45, 78, 46, 49, 47, 48, 50, 65, 51, 63, 52, 53, 61, 54, 55, 59, 56, 57, 58, 60, 62, 64, 66, 74, 67, 70, 68, 69, 71, 72, 73, 75, 76, 77, 80, 81, 82, 86, 82, 83, 84, 85, 87, 90, 88, 89, 17, 41, 90, 21, 92, 94, 91, 93, 8, 11, 93, 95, 96, 97, 99, 100, 98, 102, 101, 104, 103, 103, 105, 17, 41, 21, 3, 4, 107, 108, 109, 3, 4, 111, 112, 113, 114, 115, 118, 116, 117, 119, 120, 121, 122, 3, 4, 124]; _tsip_machine_parser_header_NameAddr_trans_actions = [0, 0, 0, 0, 0, 17, 17, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 9, 9, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 1, 0, 0, 7, 7, 0, 7, 0, 0, 0, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 3, 3, 3, 11, 11, 0, 0, 0, 15, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 13, 0]; tsip_machine_parser_header_NameAddr_start = 1; tsip_machine_parser_header_NameAddr_first_final = 125; tsip_machine_parser_header_NameAddr_error = 0; tsip_machine_parser_header_NameAddr_en_main = 1; function tsip_header_NameAddr(b, a, c) { tsip_header.call(this, b); this.s_display_name = a ? a.s_display_name : null; this.o_uri = a; this.s_tag = c } tsip_header_NameAddr.prototype.toString = function() { var a = tsip_uri_tostring(this.o_uri, true, true); if (a && this.s_tag) { a += tsk_string_format(";tag={0}", this.s_tag) } return a }; tsip_header_NameAddr.prototype.Parse = function(m) { var e = 0; var k = 0; var w = m.length; var h = w; var x = tsk_buff_str2ib(m); var v; var n; e = tsip_machine_parser_header_NameAddr_start; var f, o, b, d, c, s, l; var q, j, a, r, u; var t; f = o = b = s = l = null; q = 0; j = 10; a = 15; r = 20; u = 30; t = 40; while (true) { _trigger_goto = false; if (q <= 0) { if (k == w) { q = u; continue } if (e == 0) { q = t; continue } } if (q <= j) { b = _tsip_machine_parser_header_NameAddr_key_offsets[e]; o = _tsip_machine_parser_header_NameAddr_index_offsets[e]; f = _tsip_machine_parser_header_NameAddr_single_lengths[e]; _break_match = false; do { if (f > 0) { _lower = b; _upper = b + f - 1; while (true) { if (_upper < _lower) { break } _mid = _lower + ((_upper - _lower) >> 1); if (x[k] < _tsip_machine_parser_header_NameAddr_trans_keys[_mid]) { _upper = _mid - 1 } else { if (x[k] > _tsip_machine_parser_header_NameAddr_trans_keys[_mid]) { _lower = _mid + 1 } else { o += (_mid - b); _break_match = true; break } } } if (_break_match) { break } b += f; o += f } f = _tsip_machine_parser_header_NameAddr_range_lengths[e]; if (f > 0) { _lower = b; _upper = b + (f << 1) - 2; while (true) { if (_upper < _lower) { break } _mid = _lower + (((_upper - _lower) >> 1) & ~1); if (x[k] < _tsip_machine_parser_header_NameAddr_trans_keys[_mid]) { _upper = _mid - 2 } else { if (x[k] > _tsip_machine_parser_header_NameAddr_trans_keys[_mid + 1]) { _lower = _mid + 2 } else { o += ((_mid - b) >> 1); _break_match = true; break } } } if (_break_match) { break } o += f } } while (false); o = _tsip_machine_parser_header_NameAddr_indicies[o]; e = _tsip_machine_parser_header_NameAddr_trans_targs[o]; if (_tsip_machine_parser_header_NameAddr_trans_actions[o] != 0) { s = _tsip_machine_parser_header_NameAddr_trans_actions[o]; l = _tsip_machine_parser_header_NameAddr_actions[s]; s += 1; while (l > 0) { l -= 1; s += 1; switch (_tsip_machine_parser_header_NameAddr_actions[s - 1]) { case 0: v = k; break; case 1: if (n && !n.o_uri) { var g = tsk_ragel_parser_get_string(m, k, v); if ((n.o_uri = tsip_uri.prototype.Parse(g)) && n.s_display_name) { n.o_uri.s_display_name = tsk_strdup(n.s_display_name) } } break; case 2: if (n) { n.s_display_name = tsk_ragel_parser_get_string(m, k, v); n.s_display_name = tsk_string_unquote_2(n.s_display_name) } break; case 3: if (n) { n.s_tag = tsk_ragel_parser_get_string(m, k, v) } break; case 4: tsk_ragel_add_param(m, k, v, n.ao_params); break; case 5: n = new tsip_header_From(); break; case 6: n = new tsip_header_To(); break; case 7: n = new tsip_header_Refer_To(); break; case 8: n = new tsip_header_Referred_By(); break; case 9: break } } } if (_trigger_goto) { continue } } if (q <= r) { if (e == 0) { q = t; continue } k += 1; if (k != w) { q = j; continue } } if (q <= u) {} if (q <= t) { break } } if (e < 125) { tsk_utils_log_error("Failed to parse header: " + m); return null } return n }; function tsip_header_From(a, b) { tsip_header_NameAddr.call(this, tsip_header_type_e.From, a, b) } function tsip_header_To(a, b) { tsip_header_NameAddr.call(this, tsip_header_type_e.To, a, b) } function tsip_header_Refer_To(a) { tsip_header_NameAddr.call(this, tsip_header_type_e.Refer_To, a) } function tsip_header_Referred_By(a) { tsip_header_NameAddr.call(this, tsip_header_type_e.Referred_By, a) } if (!window.__b_release_mode) { tsip_api_add_js_scripts("head", "src/tinySIP/src/headers/tsip_header_NameAddrArray.js") } tsip_header_P_Asserted_Identity.prototype = Object.create(tsip_header_NameAddr.prototype); tsip_header_P_Associated_URI.prototype = Object.create(tsip_header_NameAddr.prototype); tsip_header_P_Preferred_Identity.prototype = Object.create(tsip_header_NameAddr.prototype); tsip_header_Path.prototype = Object.create(tsip_header_NameAddr.prototype); tsip_header_Record_Route.prototype = Object.create(tsip_header_NameAddr.prototype); tsip_header_Route.prototype = Object.create(tsip_header_NameAddr.prototype); tsip_header_Service_Route.prototype = Object.create(tsip_header_NameAddr.prototype); function tsip_header_P_Asserted_Identity(a) { tsip_header_NameAddr.call(this, tsip_header_type_e.P_Asserted_Identity, a) } function tsip_header_P_Associated_URI(a) { tsip_header_NameAddr.call(this, tsip_header_type_e.P_Associated_URI, a) } function tsip_header_P_Preferred_Identity(a) { tsip_header_NameAddr.call(this, tsip_header_type_e.P_Preferred_Identity, a) } function tsip_header_Path(a) { tsip_header_NameAddr.call(this, tsip_header_type_e.Path, a) } function tsip_header_Record_Route(a) { tsip_header_NameAddr.call(this, tsip_header_type_e.Record_Route, a) } function tsip_header_Route(a) { tsip_header_NameAddr.call(this, tsip_header_type_e.Route, a) } function tsip_header_Service_Route(a) { tsip_header_NameAddr.call(this, tsip_header_type_e.Service_Route, a) } _tsip_machine_parser_header_NameAddrArray_actions = [0, 1, 0, 1, 1, 1, 2, 1, 3, 1, 4, 1, 5, 1, 6, 1, 7, 1, 8, 1, 9, 1, 10, 1, 11, 1, 12, 1, 13, 2, 1, 0, 2, 3, 5]; _tsip_machine_parser_header_NameAddrArray_key_offsets = [0, 0, 6, 9, 13, 15, 17, 21, 23, 25, 27, 29, 30, 32, 34, 36, 38, 40, 42, 44, 46, 49, 52, 73, 74, 76, 97, 98, 100, 103, 107, 119, 122, 124, 127, 132, 137, 138, 140, 144, 161, 162, 164, 180, 198, 204, 205, 207, 212, 231, 232, 234, 253, 254, 256, 259, 267, 268, 270, 275, 276, 282, 299, 306, 314, 322, 330, 332, 339, 348, 350, 353, 355, 358, 360, 363, 366, 367, 370, 371, 374, 375, 384, 393, 401, 409, 417, 425, 427, 433, 442, 451, 460, 462, 465, 468, 469, 470, 487, 505, 509, 510, 512, 520, 521, 523, 527, 533, 553, 572, 577, 579, 586, 588, 590, 592, 594, 596, 598, 599, 601, 603, 605, 608, 610, 612, 614, 616, 618, 620, 622, 624, 625, 627, 629, 631, 633, 635, 637, 639, 641, 644, 646, 648, 651, 655, 657, 659, 661, 663, 664, 666, 668, 670, 672, 674, 677, 679, 681, 683, 686, 688, 690, 692, 694, 696, 698, 699, 701, 703, 705, 707, 709, 712]; _tsip_machine_parser_header_NameAddrArray_trans_keys = [80, 82, 83, 112, 114, 115, 45, 65, 97, 65, 80, 97, 112, 83, 115, 83, 115, 69, 79, 101, 111, 82, 114, 84, 116, 69, 101, 68, 100, 45, 73, 105, 68, 100, 69, 101, 78, 110, 84, 116, 73, 105, 84, 116, 89, 121, 9, 32, 58, 9, 32, 58, 9, 13, 32, 33, 34, 37, 39, 60, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 96, 97, 122, 10, 9, 32, 9, 13, 32, 33, 34, 37, 39, 60, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 96, 97, 122, 10, 9, 32, 9, 32, 60, 65, 90, 97, 122, 9, 32, 43, 58, 45, 46, 48, 57, 65, 90, 97, 122, 9, 32, 58, 0, 65535, 62, 0, 65535, 9, 13, 32, 44, 59, 9, 13, 32, 44, 59, 10, 9, 32, 9, 32, 44, 59, 9, 13, 32, 33, 37, 39, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 10, 9, 32, 9, 32, 33, 37, 39, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 13, 32, 33, 37, 39, 44, 59, 61, 126, 42, 46, 48, 57, 65, 90, 95, 122, 9, 13, 32, 44, 59, 61, 10, 9, 32, 9, 32, 44, 59, 61, 9, 13, 32, 33, 34, 37, 39, 91, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 10, 9, 32, 9, 13, 32, 33, 34, 37, 39, 91, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 10, 9, 32, 9, 32, 34, 9, 13, 34, 92, 32, 126, 128, 255, 10, 9, 32, 9, 13, 32, 44, 59, 10, 0, 9, 11, 12, 14, 127, 9, 13, 32, 33, 37, 39, 44, 59, 126, 42, 46, 48, 57, 65, 90, 95, 122, 58, 48, 57, 65, 70, 97, 102, 58, 93, 48, 57, 65, 70, 97, 102, 58, 93, 48, 57, 65, 70, 97, 102, 58, 93, 48, 57, 65, 70, 97, 102, 58, 93, 58, 48, 57, 65, 70, 97, 102, 46, 58, 93, 48, 57, 65, 70, 97, 102, 48, 57, 46, 48, 57, 48, 57, 46, 48, 57, 48, 57, 93, 48, 57, 93, 48, 57, 93, 46, 48, 57, 46, 46, 48, 57, 46, 46, 58, 93, 48, 57, 65, 70, 97, 102, 46, 58, 93, 48, 57, 65, 70, 97, 102, 58, 93, 48, 57, 65, 70, 97, 102, 58, 93, 48, 57, 65, 70, 97, 102, 58, 93, 48, 57, 65, 70, 97, 102, 58, 93, 48, 57, 65, 70, 97, 102, 58, 93, 48, 57, 65, 70, 97, 102, 46, 58, 93, 48, 57, 65, 70, 97, 102, 46, 58, 93, 48, 57, 65, 70, 97, 102, 46, 58, 93, 48, 57, 65, 70, 97, 102, 48, 57, 46, 48, 57, 46, 48, 57, 46, 58, 9, 13, 32, 33, 37, 39, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 13, 32, 33, 37, 39, 60, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 13, 32, 60, 10, 9, 32, 9, 13, 34, 92, 32, 126, 128, 255, 10, 9, 32, 9, 13, 32, 60, 0, 9, 11, 12, 14, 127, 9, 13, 32, 33, 37, 39, 42, 43, 58, 126, 45, 46, 48, 57, 65, 90, 95, 96, 97, 122, 9, 13, 32, 33, 37, 39, 58, 60, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 13, 32, 58, 60, 0, 65535, 9, 13, 32, 44, 59, 0, 65535, 67, 99, 73, 105, 65, 97, 84, 116, 69, 101, 68, 100, 45, 85, 117, 82, 114, 73, 105, 9, 32, 58, 82, 114, 69, 101, 70, 102, 69, 101, 82, 114, 82, 114, 69, 101, 68, 100, 45, 73, 105, 68, 100, 69, 101, 78, 110, 84, 116, 73, 105, 84, 116, 89, 121, 9, 32, 58, 84, 116, 72, 104, 9, 32, 58, 69, 79, 101, 111, 67, 99, 79, 111, 82, 114, 68, 100, 45, 82, 114, 79, 111, 85, 117, 84, 116, 69, 101, 9, 32, 58, 85, 117, 84, 116, 69, 101, 9, 32, 58, 69, 101, 82, 114, 86, 118, 73, 105, 67, 99, 69, 101, 45, 82, 114, 79, 111, 85, 117, 84, 116, 69, 101, 9, 32, 58, 0]; _tsip_machine_parser_header_NameAddrArray_single_lengths = [0, 6, 3, 4, 2, 2, 4, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 9, 1, 2, 9, 1, 2, 3, 0, 4, 3, 0, 1, 5, 5, 1, 2, 4, 7, 1, 2, 6, 10, 6, 1, 2, 5, 9, 1, 2, 9, 1, 2, 3, 4, 1, 2, 5, 1, 0, 9, 1, 2, 2, 2, 2, 1, 3, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 3, 3, 2, 2, 2, 2, 2, 0, 3, 3, 3, 0, 1, 1, 1, 1, 7, 8, 4, 1, 2, 4, 1, 2, 4, 0, 10, 9, 5, 0, 5, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 3, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 3, 2, 2, 3, 4, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 3, 2, 2, 2, 3, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 3, 0]; _tsip_machine_parser_header_NameAddrArray_range_lengths = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 6, 0, 0, 0, 2, 4, 0, 1, 1, 0, 0, 0, 0, 0, 5, 0, 0, 5, 4, 0, 0, 0, 0, 5, 0, 0, 5, 0, 0, 0, 2, 0, 0, 0, 0, 3, 4, 3, 3, 3, 3, 0, 3, 3, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 3, 3, 3, 3, 3, 3, 0, 3, 3, 3, 3, 1, 1, 1, 0, 0, 5, 5, 0, 0, 0, 2, 0, 0, 0, 3, 5, 5, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]; _tsip_machine_parser_header_NameAddrArray_index_offsets = [0, 0, 7, 11, 16, 19, 22, 27, 30, 33, 36, 39, 41, 44, 47, 50, 53, 56, 59, 62, 65, 69, 73, 89, 91, 94, 110, 112, 115, 119, 122, 131, 135, 137, 140, 146, 152, 154, 157, 162, 175, 177, 180, 192, 207, 214, 216, 219, 225, 240, 242, 245, 260, 262, 265, 269, 276, 278, 281, 287, 289, 293, 307, 312, 318, 324, 330, 333, 338, 345, 347, 350, 352, 355, 357, 360, 363, 365, 368, 370, 373, 375, 382, 389, 395, 401, 407, 413, 416, 420, 427, 434, 441, 443, 446, 449, 451, 453, 466, 480, 485, 487, 490, 497, 499, 502, 507, 511, 527, 542, 548, 550, 557, 560, 563, 566, 569, 572, 575, 577, 580, 583, 586, 590, 593, 596, 599, 602, 605, 608, 611, 614, 616, 619, 622, 625, 628, 631, 634, 637, 640, 644, 647, 650, 654, 659, 662, 665, 668, 671, 673, 676, 679, 682, 685, 688, 692, 695, 698, 701, 705, 708, 711, 714, 717, 720, 723, 725, 728, 731, 734, 737, 740, 744]; _tsip_machine_parser_header_NameAddrArray_indicies = [0, 2, 3, 0, 2, 3, 1, 4, 5, 5, 1, 6, 7, 6, 7, 1, 8, 8, 1, 9, 9, 1, 10, 11, 10, 11, 1, 12, 12, 1, 13, 13, 1, 14, 14, 1, 15, 15, 1, 16, 1, 17, 17, 1, 18, 18, 1, 19, 19, 1, 20, 20, 1, 21, 21, 1, 22, 22, 1, 23, 23, 1, 24, 24, 1, 25, 25, 26, 1, 27, 27, 28, 1, 29, 30, 29, 31, 32, 31, 31, 33, 31, 31, 31, 31, 34, 31, 34, 1, 35, 1, 36, 36, 1, 37, 38, 37, 31, 32, 31, 31, 33, 31, 31, 31, 31, 34, 31, 34, 1, 39, 1, 40, 40, 1, 40, 40, 41, 1, 42, 42, 1, 43, 43, 44, 45, 44, 44, 44, 44, 1, 43, 43, 45, 1, 46, 1, 47, 46, 1, 48, 49, 48, 50, 51, 1, 52, 53, 52, 28, 54, 1, 55, 1, 56, 56, 1, 56, 56, 28, 54, 1, 54, 57, 54, 58, 58, 58, 58, 58, 58, 58, 58, 58, 1, 59, 1, 60, 60, 1, 60, 60, 58, 58, 58, 58, 58, 58, 58, 58, 58, 1, 61, 62, 61, 63, 63, 63, 64, 65, 66, 63, 63, 63, 63, 63, 1, 67, 68, 67, 28, 54, 66, 1, 69, 1, 70, 70, 1, 70, 70, 28, 54, 66, 1, 66, 71, 66, 72, 73, 72, 72, 74, 72, 72, 72, 72, 72, 72, 1, 75, 1, 76, 76, 1, 76, 77, 76, 72, 73, 72, 72, 74, 72, 72, 72, 72, 72, 72, 1, 78, 1, 79, 79, 1, 79, 79, 73, 1, 73, 80, 81, 82, 73, 73, 1, 83, 1, 73, 73, 1, 84, 62, 84, 64, 65, 1, 85, 1, 73, 73, 73, 1, 84, 62, 84, 72, 72, 72, 64, 65, 72, 72, 72, 72, 72, 1, 87, 86, 86, 86, 1, 89, 81, 88, 88, 88, 1, 89, 81, 90, 90, 90, 1, 89, 81, 91, 91, 91, 1, 89, 81, 1, 93, 92, 86, 86, 1, 94, 89, 81, 95, 88, 88, 1, 96, 1, 97, 98, 1, 99, 1, 100, 101, 1, 102, 1, 81, 103, 1, 81, 104, 1, 81, 1, 100, 105, 1, 100, 1, 97, 106, 1, 97, 1, 94, 89, 81, 107, 90, 90, 1, 94, 89, 81, 91, 91, 91, 1, 109, 81, 108, 108, 108, 1, 111, 81, 110, 110, 110, 1, 111, 81, 112, 112, 112, 1, 111, 81, 113, 113, 113, 1, 111, 81, 1, 114, 108, 108, 1, 94, 111, 81, 115, 110, 110, 1, 94, 111, 81, 116, 112, 112, 1, 94, 111, 81, 113, 113, 113, 1, 117, 1, 94, 118, 1, 94, 119, 1, 94, 1, 93, 1, 120, 121, 120, 122, 122, 122, 122, 122, 122, 122, 122, 122, 1, 123, 124, 123, 122, 122, 122, 125, 122, 122, 122, 122, 122, 122, 1, 126, 127, 126, 41, 1, 128, 1, 120, 120, 1, 129, 130, 131, 132, 129, 129, 1, 133, 1, 129, 129, 1, 123, 124, 123, 125, 1, 129, 129, 129, 1, 134, 121, 134, 122, 122, 122, 122, 135, 136, 122, 135, 135, 135, 122, 135, 1, 137, 124, 137, 122, 122, 122, 136, 125, 122, 122, 122, 122, 122, 122, 1, 138, 127, 138, 136, 41, 1, 139, 1, 140, 141, 140, 142, 143, 139, 1, 144, 144, 1, 145, 145, 1, 146, 146, 1, 147, 147, 1, 148, 148, 1, 149, 149, 1, 150, 1, 151, 151, 1, 152, 152, 1, 153, 153, 1, 154, 154, 155, 1, 156, 156, 1, 157, 157, 1, 158, 158, 1, 159, 159, 1, 160, 160, 1, 161, 161, 1, 162, 162, 1, 163, 163, 1, 164, 1, 165, 165, 1, 166, 166, 1, 167, 167, 1, 168, 168, 1, 169, 169, 1, 170, 170, 1, 171, 171, 1, 172, 172, 1, 173, 173, 174, 1, 175, 175, 1, 176, 176, 1, 177, 177, 178, 1, 179, 180, 179, 180, 1, 181, 181, 1, 182, 182, 1, 183, 183, 1, 184, 184, 1, 185, 1, 186, 186, 1, 187, 187, 1, 188, 188, 1, 189, 189, 1, 190, 190, 1, 191, 191, 192, 1, 193, 193, 1, 194, 194, 1, 195, 195, 1, 196, 196, 197, 1, 198, 198, 1, 199, 199, 1, 200, 200, 1, 201, 201, 1, 202, 202, 1, 203, 203, 1, 204, 1, 205, 205, 1, 206, 206, 1, 207, 207, 1, 208, 208, 1, 209, 209, 1, 210, 210, 211, 1, 1, 0]; _tsip_machine_parser_header_NameAddrArray_trans_targs = [2, 0, 144, 160, 3, 141, 4, 123, 5, 6, 7, 112, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 21, 22, 22, 23, 97, 102, 29, 107, 24, 25, 25, 26, 27, 28, 29, 30, 31, 30, 32, 33, 34, 35, 59, 22, 39, 35, 36, 39, 37, 38, 40, 43, 41, 42, 44, 59, 43, 22, 39, 48, 44, 45, 46, 47, 49, 61, 55, 62, 50, 51, 52, 53, 54, 56, 58, 60, 57, 35, 173, 63, 96, 64, 67, 65, 66, 68, 83, 69, 81, 70, 71, 79, 72, 73, 77, 74, 75, 76, 78, 80, 82, 84, 92, 85, 88, 86, 87, 89, 90, 91, 93, 94, 95, 98, 100, 97, 99, 26, 29, 99, 26, 101, 102, 103, 105, 106, 104, 108, 107, 110, 109, 109, 111, 35, 59, 22, 39, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 21, 22, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 21, 22, 142, 143, 21, 22, 145, 156, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 21, 22, 157, 158, 159, 21, 22, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 21, 22]; _tsip_machine_parser_header_NameAddrArray_trans_actions = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 13, 0, 0, 3, 3, 29, 29, 3, 29, 0, 0, 3, 3, 0, 0, 0, 1, 0, 0, 0, 0, 7, 11, 11, 11, 11, 0, 0, 0, 0, 0, 0, 1, 0, 0, 9, 9, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 32, 32, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 17, 0, 0, 19, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 21, 0, 0, 0, 23, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 25]; tsip_machine_parser_header_NameAddrArray_start = 1; tsip_machine_parser_header_NameAddrArray_first_final = 173; tsip_machine_parser_header_NameAddrArray_error = 0; tsip_machine_parser_header_NameAddrArray_en_main = 1; tsip_header_P_Asserted_Identity.prototype.Parse = tsip_header_P_Associated_URI.prototype.Parse = tsip_header_P_Preferred_Identity.prototype.Parse = tsip_header_Path.prototype.Parse = tsip_header_Record_Route.prototype.Parse = tsip_header_Route.prototype.Parse = tsip_header_Service_Route.prototype.Parse = function(q) { var g = 0; var m = 0; var y = q.length; var k = y; var z = tsk_buff_str2ib(q); var x; var c = new Array(); var b = null; var o = null; g = tsip_machine_parser_header_NameAddrArray_start; var h, r, d, f, e, u, n; var s, l, a, t, w; var v; h = r = d = u = n = null; s = 0; l = 10; a = 15; t = 20; w = 30; v = 40; while (true) { _trigger_goto = false; if (s <= 0) { if (m == y) { s = w; continue } if (g == 0) { s = v; continue } } if (s <= l) { d = _tsip_machine_parser_header_NameAddrArray_key_offsets[g]; r = _tsip_machine_parser_header_NameAddrArray_index_offsets[g]; h = _tsip_machine_parser_header_NameAddrArray_single_lengths[g]; _break_match = false; do { if (h > 0) { _lower = d; _upper = d + h - 1; while (true) { if (_upper < _lower) { break } _mid = _lower + ((_upper - _lower) >> 1); if (z[m] < _tsip_machine_parser_header_NameAddrArray_trans_keys[_mid]) { _upper = _mid - 1 } else { if (z[m] > _tsip_machine_parser_header_NameAddrArray_trans_keys[_mid]) { _lower = _mid + 1 } else { r += (_mid - d); _break_match = true; break } } } if (_break_match) { break } d += h; r += h } h = _tsip_machine_parser_header_NameAddrArray_range_lengths[g]; if (h > 0) { _lower = d; _upper = d + (h << 1) - 2; while (true) { if (_upper < _lower) { break } _mid = _lower + (((_upper - _lower) >> 1) & ~1); if (z[m] < _tsip_machine_parser_header_NameAddrArray_trans_keys[_mid]) { _upper = _mid - 2 } else { if (z[m] > _tsip_machine_parser_header_NameAddrArray_trans_keys[_mid + 1]) { _lower = _mid + 2 } else { r += ((_mid - d) >> 1); _break_match = true; break } } } if (_break_match) { break } r += h } } while (false); r = _tsip_machine_parser_header_NameAddrArray_indicies[r]; g = _tsip_machine_parser_header_NameAddrArray_trans_targs[r]; if (_tsip_machine_parser_header_NameAddrArray_trans_actions[r] != 0) { u = _tsip_machine_parser_header_NameAddrArray_trans_actions[r]; n = _tsip_machine_parser_header_NameAddrArray_actions[u]; u += 1; while (n > 0) { n -= 1; u += 1; switch (_tsip_machine_parser_header_NameAddrArray_actions[u - 1]) { case 0: x = m; break; case 1: if (!b) { b = new o() } break; case 2: if (b) { b.s_display_name = tsk_ragel_parser_get_string(q, m, x); b.s_display_name = tsk_string_unquote_2(b.s_display_name) } break; case 3: if (b && !b.o_uri) { var j = tsk_ragel_parser_get_string(q, m, x); if ((b.o_uri = tsip_uri.prototype.Parse(j)) && b.s_display_name) { b.o_uri.s_display_name = tsk_strdup(b.s_display_name) } } break; case 4: if (b) { tsk_ragel_add_param(q, m, x, b.ao_params) } break; case 5: if (b) { c.push(b); b = null } break; case 6: o = tsip_header_P_Asserted_Identity; break; case 7: o = tsip_header_P_Associated_URI; break; case 8: o = tsip_header_P_Preferred_Identity; break; case 9: o = tsip_header_Path; break; case 10: o = tsip_header_Record_Route; break; case 11: o = tsip_header_Route; break; case 12: o = tsip_header_Service_Route; break; case 13: break } } } if (_trigger_goto) { continue } } if (s <= t) { if (g == 0) { s = v; continue } m += 1; if (m != y) { s = l; continue } } if (s <= w) {} if (s <= v) { break } } if (g < 173) { tsk_utils_log_error("Failed to parse header: " + q); return null } return c }; tsip_header_Str.prototype = Object.create(tsip_header.prototype); tsip_header_Call_ID.prototype = Object.create(tsip_header_Str.prototype); tsip_header_Date.prototype = Object.create(tsip_header_Str.prototype); tsip_header_Event.prototype = Object.create(tsip_header_Str.prototype); tsip_header_Organization.prototype = Object.create(tsip_header_Str.prototype); tsip_header_P_Access_Network_Info.prototype = Object.create(tsip_header_Str.prototype); tsip_header_P_Charging_Function_Addresses.prototype = Object.create(tsip_header_Str.prototype); tsip_header_Server.prototype = Object.create(tsip_header_Str.prototype); tsip_header_SIP_ETag.prototype = Object.create(tsip_header_Str.prototype); tsip_header_SIP_If_Match.prototype = Object.create(tsip_header_Str.prototype); tsip_header_User_Agent.prototype = Object.create(tsip_header_Str.prototype); tsip_header_Warning.prototype = Object.create(tsip_header_Str.prototype); tsip_header_Dummy.prototype = Object.create(tsip_header_Str.prototype); _tsip_machine_parser_header_Str_actions = [0, 1, 0, 1, 14, 1, 16, 2, 0, 14, 2, 1, 13, 2, 2, 13, 2, 3, 13, 2, 4, 13, 2, 5, 13, 2, 6, 13, 2, 7, 13, 2, 8, 13, 2, 9, 13, 2, 10, 13, 2, 11, 13, 2, 12, 13, 2, 14, 15, 3, 0, 12, 13]; _tsip_machine_parser_header_Str_key_offsets = [0, 0, 23, 28, 31, 38, 45, 46, 70, 95, 103, 129, 153, 167, 174, 205, 237, 252, 284, 315, 325, 339, 366, 394, 422, 450, 466, 493, 522, 540, 559, 577, 596, 614, 633, 652, 667, 686, 701, 720, 735, 764, 793, 821, 849, 877, 905, 921, 947, 976, 1005, 1034, 1052, 1071, 1090, 1105, 1120, 1140, 1161, 1182, 1203, 1212, 1232, 1254, 1265, 1277, 1288, 1300, 1311, 1323, 1335, 1343, 1355, 1363, 1375, 1383, 1405, 1427, 1448, 1469, 1490, 1511, 1520, 1539, 1561, 1583, 1605, 1616, 1628, 1640, 1648, 1656, 1657, 1659, 1666, 1673, 1680, 1687, 1693, 1700, 1707, 1710, 1717, 1724, 1731, 1734, 1741, 1748, 1755, 1762, 1765, 1770, 1772, 1774, 1776, 1778, 1780, 1782, 1784, 1786, 1788, 1790, 1793, 1799, 1808, 1815, 1822, 1829, 1836, 1843, 1849, 1856, 1863, 1870, 1877, 1884, 1891, 1898, 1904, 1911, 1918, 1925, 1932, 1935, 1942, 1949, 1956, 1963, 1970, 1977, 1984, 1990, 1997, 2004, 2011, 2018, 2025, 2032, 2039, 2046, 2052, 2059, 2066, 2073, 2080, 2087, 2094, 2101, 2108, 2115, 2118, 2127, 2134, 2141, 2148, 2155, 2158, 2165, 2171, 2180, 2187, 2194, 2201, 2204, 2211, 2217, 2224, 2231, 2238, 2245, 2252, 2255, 2262, 2269, 2276, 2282, 2289, 2296, 2303, 2310, 2317, 2320, 2327, 2334, 2341, 2348, 2355, 2362, 2365]; _tsip_machine_parser_header_Str_trans_keys = [9, 32, 58, 67, 68, 69, 73, 79, 80, 83, 85, 87, 99, 100, 101, 105, 111, 112, 115, 117, 119, 0, 65535, 9, 32, 58, 0, 65535, 9, 32, 58, 9, 13, 32, 44, 59, 0, 65535, 9, 13, 32, 44, 59, 0, 65535, 10, 9, 13, 32, 33, 37, 39, 44, 47, 59, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 59, 61, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 44, 59, 61, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 59, 91, 126, 0, 41, 42, 57, 58, 64, 65, 90, 92, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 59, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 34, 44, 59, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 44, 59, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 59, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 59, 61, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 59, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 59, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 59, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 10, 13, 32, 44, 59, 0, 127, 128, 65535, 9, 13, 32, 34, 44, 59, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 34, 44, 58, 59, 92, 127, 0, 31, 33, 47, 48, 57, 60, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 32, 34, 44, 58, 59, 92, 93, 127, 0, 31, 33, 47, 48, 57, 60, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 32, 34, 44, 58, 59, 92, 93, 127, 0, 31, 33, 47, 48, 57, 60, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 32, 34, 44, 58, 59, 92, 93, 127, 0, 31, 33, 47, 48, 57, 60, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 32, 34, 44, 58, 59, 92, 93, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 34, 44, 58, 59, 92, 127, 0, 31, 33, 47, 48, 57, 60, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 32, 34, 44, 46, 58, 59, 92, 93, 127, 0, 31, 33, 47, 48, 57, 60, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 32, 34, 44, 59, 92, 127, 0, 31, 33, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 32, 34, 44, 46, 59, 92, 127, 0, 31, 33, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 32, 34, 44, 59, 92, 127, 0, 31, 33, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 32, 34, 44, 46, 59, 92, 127, 0, 31, 33, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 32, 34, 44, 59, 92, 127, 0, 31, 33, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 32, 34, 44, 59, 92, 93, 127, 0, 31, 33, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 32, 34, 44, 59, 92, 93, 127, 0, 31, 33, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 32, 34, 44, 59, 92, 93, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 34, 44, 46, 59, 92, 127, 0, 31, 33, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 32, 34, 44, 46, 59, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 34, 44, 46, 59, 92, 127, 0, 31, 33, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 32, 34, 44, 46, 59, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 34, 44, 46, 58, 59, 92, 93, 127, 0, 31, 33, 47, 48, 57, 60, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 32, 34, 44, 46, 58, 59, 92, 93, 127, 0, 31, 33, 47, 48, 57, 60, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 32, 34, 44, 58, 59, 92, 93, 127, 0, 31, 33, 47, 48, 57, 60, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 32, 34, 44, 58, 59, 92, 93, 127, 0, 31, 33, 47, 48, 57, 60, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 32, 34, 44, 58, 59, 92, 93, 127, 0, 31, 33, 47, 48, 57, 60, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 32, 34, 44, 58, 59, 92, 93, 127, 0, 31, 33, 47, 48, 57, 60, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 32, 34, 44, 58, 59, 92, 93, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 34, 44, 59, 92, 127, 0, 31, 33, 47, 48, 57, 58, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 32, 34, 44, 46, 58, 59, 92, 93, 127, 0, 31, 33, 47, 48, 57, 60, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 32, 34, 44, 46, 58, 59, 92, 93, 127, 0, 31, 33, 47, 48, 57, 60, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 32, 34, 44, 46, 58, 59, 92, 93, 127, 0, 31, 33, 47, 48, 57, 60, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 32, 34, 44, 59, 92, 127, 0, 31, 33, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 32, 34, 44, 46, 59, 92, 127, 0, 31, 33, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 32, 34, 44, 46, 59, 92, 127, 0, 31, 33, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 32, 34, 44, 46, 59, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 34, 44, 58, 59, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 44, 58, 59, 0, 47, 48, 57, 60, 64, 65, 70, 71, 96, 97, 102, 103, 65535, 9, 13, 32, 44, 58, 59, 93, 0, 47, 48, 57, 60, 64, 65, 70, 71, 96, 97, 102, 103, 65535, 9, 13, 32, 44, 58, 59, 93, 0, 47, 48, 57, 60, 64, 65, 70, 71, 96, 97, 102, 103, 65535, 9, 13, 32, 44, 58, 59, 93, 0, 47, 48, 57, 60, 64, 65, 70, 71, 96, 97, 102, 103, 65535, 9, 13, 32, 44, 58, 59, 93, 0, 65535, 9, 13, 32, 44, 58, 59, 0, 47, 48, 57, 60, 64, 65, 70, 71, 96, 97, 102, 103, 65535, 9, 13, 32, 44, 46, 58, 59, 93, 0, 47, 48, 57, 60, 64, 65, 70, 71, 96, 97, 102, 103, 65535, 9, 13, 32, 44, 59, 0, 47, 48, 57, 58, 65535, 9, 13, 32, 44, 46, 59, 0, 47, 48, 57, 58, 65535, 9, 13, 32, 44, 59, 0, 47, 48, 57, 58, 65535, 9, 13, 32, 44, 46, 59, 0, 47, 48, 57, 58, 65535, 9, 13, 32, 44, 59, 0, 47, 48, 57, 58, 65535, 9, 13, 32, 44, 59, 93, 0, 47, 48, 57, 58, 65535, 9, 13, 32, 44, 59, 93, 0, 47, 48, 57, 58, 65535, 9, 13, 32, 44, 59, 93, 0, 65535, 9, 13, 32, 44, 46, 59, 0, 47, 48, 57, 58, 65535, 9, 13, 32, 44, 46, 59, 0, 65535, 9, 13, 32, 44, 46, 59, 0, 47, 48, 57, 58, 65535, 9, 13, 32, 44, 46, 59, 0, 65535, 9, 13, 32, 44, 46, 58, 59, 93, 0, 47, 48, 57, 60, 64, 65, 70, 71, 96, 97, 102, 103, 65535, 9, 13, 32, 44, 46, 58, 59, 93, 0, 47, 48, 57, 60, 64, 65, 70, 71, 96, 97, 102, 103, 65535, 9, 13, 32, 44, 58, 59, 93, 0, 47, 48, 57, 60, 64, 65, 70, 71, 96, 97, 102, 103, 65535, 9, 13, 32, 44, 58, 59, 93, 0, 47, 48, 57, 60, 64, 65, 70, 71, 96, 97, 102, 103, 65535, 9, 13, 32, 44, 58, 59, 93, 0, 47, 48, 57, 60, 64, 65, 70, 71, 96, 97, 102, 103, 65535, 9, 13, 32, 44, 58, 59, 93, 0, 47, 48, 57, 60, 64, 65, 70, 71, 96, 97, 102, 103, 65535, 9, 13, 32, 44, 58, 59, 93, 0, 65535, 9, 13, 32, 44, 59, 0, 47, 48, 57, 58, 64, 65, 70, 71, 96, 97, 102, 103, 65535, 9, 13, 32, 44, 46, 58, 59, 93, 0, 47, 48, 57, 60, 64, 65, 70, 71, 96, 97, 102, 103, 65535, 9, 13, 32, 44, 46, 58, 59, 93, 0, 47, 48, 57, 60, 64, 65, 70, 71, 96, 97, 102, 103, 65535, 9, 13, 32, 44, 46, 58, 59, 93, 0, 47, 48, 57, 60, 64, 65, 70, 71, 96, 97, 102, 103, 65535, 9, 13, 32, 44, 59, 0, 47, 48, 57, 58, 65535, 9, 13, 32, 44, 46, 59, 0, 47, 48, 57, 58, 65535, 9, 13, 32, 44, 46, 59, 0, 47, 48, 57, 58, 65535, 9, 13, 32, 44, 46, 59, 0, 65535, 9, 13, 32, 44, 58, 59, 0, 65535, 10, 9, 32, 9, 13, 32, 44, 59, 0, 65535, 9, 32, 58, 65, 97, 0, 65535, 9, 32, 58, 76, 108, 0, 65535, 9, 32, 58, 76, 108, 0, 65535, 9, 32, 45, 58, 0, 65535, 9, 32, 58, 73, 105, 0, 65535, 9, 32, 58, 68, 100, 0, 65535, 9, 32, 58, 9, 32, 58, 65, 97, 0, 65535, 9, 32, 58, 84, 116, 0, 65535, 9, 32, 58, 69, 101, 0, 65535, 9, 32, 58, 9, 32, 58, 86, 118, 0, 65535, 9, 32, 58, 69, 101, 0, 65535, 9, 32, 58, 78, 110, 0, 65535, 9, 32, 58, 84, 116, 0, 65535, 9, 32, 58, 9, 32, 58, 82, 114, 71, 103, 65, 97, 78, 110, 73, 105, 90, 122, 65, 97, 84, 116, 73, 105, 79, 111, 78, 110, 9, 32, 58, 9, 32, 45, 58, 0, 65535, 9, 32, 58, 65, 67, 97, 99, 0, 65535, 9, 32, 58, 67, 99, 0, 65535, 9, 32, 58, 67, 99, 0, 65535, 9, 32, 58, 69, 101, 0, 65535, 9, 32, 58, 83, 115, 0, 65535, 9, 32, 58, 83, 115, 0, 65535, 9, 32, 45, 58, 0, 65535, 9, 32, 58, 78, 110, 0, 65535, 9, 32, 58, 69, 101, 0, 65535, 9, 32, 58, 84, 116, 0, 65535, 9, 32, 58, 87, 119, 0, 65535, 9, 32, 58, 79, 111, 0, 65535, 9, 32, 58, 82, 114, 0, 65535, 9, 32, 58, 75, 107, 0, 65535, 9, 32, 45, 58, 0, 65535, 9, 32, 58, 73, 105, 0, 65535, 9, 32, 58, 78, 110, 0, 65535, 9, 32, 58, 70, 102, 0, 65535, 9, 32, 58, 79, 111, 0, 65535, 9, 32, 58, 9, 32, 58, 72, 104, 0, 65535, 9, 32, 58, 65, 97, 0, 65535, 9, 32, 58, 82, 114, 0, 65535, 9, 32, 58, 71, 103, 0, 65535, 9, 32, 58, 73, 105, 0, 65535, 9, 32, 58, 78, 110, 0, 65535, 9, 32, 58, 71, 103, 0, 65535, 9, 32, 45, 58, 0, 65535, 9, 32, 58, 70, 102, 0, 65535, 9, 32, 58, 85, 117, 0, 65535, 9, 32, 58, 78, 110, 0, 65535, 9, 32, 58, 67, 99, 0, 65535, 9, 32, 58, 84, 116, 0, 65535, 9, 32, 58, 73, 105, 0, 65535, 9, 32, 58, 79, 111, 0, 65535, 9, 32, 58, 78, 110, 0, 65535, 9, 32, 45, 58, 0, 65535, 9, 32, 58, 65, 97, 0, 65535, 9, 32, 58, 68, 100, 0, 65535, 9, 32, 58, 68, 100, 0, 65535, 9, 32, 58, 82, 114, 0, 65535, 9, 32, 58, 69, 101, 0, 65535, 9, 32, 58, 83, 115, 0, 65535, 9, 32, 58, 83, 115, 0, 65535, 9, 32, 58, 69, 101, 0, 65535, 9, 32, 58, 83, 115, 0, 65535, 9, 32, 58, 9, 32, 58, 69, 73, 101, 105, 0, 65535, 9, 32, 58, 82, 114, 0, 65535, 9, 32, 58, 86, 118, 0, 65535, 9, 32, 58, 69, 101, 0, 65535, 9, 32, 58, 82, 114, 0, 65535, 9, 32, 58, 9, 32, 58, 80, 112, 0, 65535, 9, 32, 45, 58, 0, 65535, 9, 32, 58, 69, 73, 101, 105, 0, 65535, 9, 32, 58, 84, 116, 0, 65535, 9, 32, 58, 65, 97, 0, 65535, 9, 32, 58, 71, 103, 0, 65535, 9, 32, 58, 9, 32, 58, 70, 102, 0, 65535, 9, 32, 45, 58, 0, 65535, 9, 32, 58, 77, 109, 0, 65535, 9, 32, 58, 65, 97, 0, 65535, 9, 32, 58, 84, 116, 0, 65535, 9, 32, 58, 67, 99, 0, 65535, 9, 32, 58, 72, 104, 0, 65535, 9, 32, 58, 9, 32, 58, 83, 115, 0, 65535, 9, 32, 58, 69, 101, 0, 65535, 9, 32, 58, 82, 114, 0, 65535, 9, 32, 45, 58, 0, 65535, 9, 32, 58, 65, 97, 0, 65535, 9, 32, 58, 71, 103, 0, 65535, 9, 32, 58, 69, 101, 0, 65535, 9, 32, 58, 78, 110, 0, 65535, 9, 32, 58, 84, 116, 0, 65535, 9, 32, 58, 9, 32, 58, 65, 97, 0, 65535, 9, 32, 58, 82, 114, 0, 65535, 9, 32, 58, 78, 110, 0, 65535, 9, 32, 58, 73, 105, 0, 65535, 9, 32, 58, 78, 110, 0, 65535, 9, 32, 58, 71, 103, 0, 65535, 9, 32, 58, 0]; _tsip_machine_parser_header_Str_single_lengths = [0, 21, 3, 3, 5, 5, 1, 10, 11, 6, 12, 10, 8, 5, 13, 14, 9, 14, 13, 6, 8, 9, 10, 10, 10, 10, 9, 11, 8, 9, 8, 9, 8, 9, 9, 9, 9, 9, 9, 9, 11, 11, 10, 10, 10, 10, 10, 8, 11, 11, 11, 8, 9, 9, 9, 9, 6, 7, 7, 7, 7, 6, 8, 5, 6, 5, 6, 5, 6, 6, 6, 6, 6, 6, 6, 8, 8, 7, 7, 7, 7, 7, 5, 8, 8, 8, 5, 6, 6, 6, 6, 1, 2, 5, 5, 5, 5, 4, 5, 5, 3, 5, 5, 5, 3, 5, 5, 5, 5, 3, 5, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 4, 7, 5, 5, 5, 5, 5, 4, 5, 5, 5, 5, 5, 5, 5, 4, 5, 5, 5, 5, 3, 5, 5, 5, 5, 5, 5, 5, 4, 5, 5, 5, 5, 5, 5, 5, 5, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 3, 7, 5, 5, 5, 5, 3, 5, 4, 7, 5, 5, 5, 3, 5, 4, 5, 5, 5, 5, 5, 3, 5, 5, 5, 4, 5, 5, 5, 5, 5, 3, 5, 5, 5, 5, 5, 5, 3, 0]; _tsip_machine_parser_header_Str_range_lengths = [0, 1, 1, 0, 1, 1, 0, 7, 7, 1, 7, 7, 3, 1, 9, 9, 3, 9, 9, 2, 3, 9, 9, 9, 9, 3, 9, 9, 5, 5, 5, 5, 5, 5, 5, 3, 5, 3, 5, 3, 9, 9, 9, 9, 9, 9, 3, 9, 9, 9, 9, 5, 5, 5, 3, 3, 7, 7, 7, 7, 1, 7, 7, 3, 3, 3, 3, 3, 3, 3, 1, 3, 1, 3, 1, 7, 7, 7, 7, 7, 7, 1, 7, 7, 7, 7, 3, 3, 3, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0]; _tsip_machine_parser_header_Str_index_offsets = [0, 0, 23, 28, 32, 39, 46, 48, 66, 85, 93, 113, 131, 143, 150, 173, 197, 210, 234, 257, 266, 278, 297, 317, 337, 357, 371, 390, 411, 425, 440, 454, 469, 483, 498, 513, 526, 541, 554, 569, 582, 603, 624, 644, 664, 684, 704, 718, 736, 757, 778, 799, 813, 828, 843, 856, 869, 883, 898, 913, 928, 937, 951, 967, 976, 986, 995, 1005, 1014, 1024, 1034, 1042, 1052, 1060, 1070, 1078, 1094, 1110, 1125, 1140, 1155, 1170, 1179, 1192, 1208, 1224, 1240, 1249, 1259, 1269, 1277, 1285, 1287, 1290, 1297, 1304, 1311, 1318, 1324, 1331, 1338, 1342, 1349, 1356, 1363, 1367, 1374, 1381, 1388, 1395, 1399, 1405, 1408, 1411, 1414, 1417, 1420, 1423, 1426, 1429, 1432, 1435, 1439, 1445, 1454, 1461, 1468, 1475, 1482, 1489, 1495, 1502, 1509, 1516, 1523, 1530, 1537, 1544, 1550, 1557, 1564, 1571, 1578, 1582, 1589, 1596, 1603, 1610, 1617, 1624, 1631, 1637, 1644, 1651, 1658, 1665, 1672, 1679, 1686, 1693, 1699, 1706, 1713, 1720, 1727, 1734, 1741, 1748, 1755, 1762, 1766, 1775, 1782, 1789, 1796, 1803, 1807, 1814, 1820, 1829, 1836, 1843, 1850, 1854, 1861, 1867, 1874, 1881, 1888, 1895, 1902, 1906, 1913, 1920, 1927, 1933, 1940, 1947, 1954, 1961, 1968, 1972, 1979, 1986, 1993, 2000, 2007, 2014, 2018]; _tsip_machine_parser_header_Str_indicies = [2, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 4, 5, 6, 7, 8, 9, 10, 11, 12, 0, 1, 14, 14, 15, 13, 1, 16, 16, 17, 1, 17, 19, 17, 20, 20, 18, 1, 22, 23, 22, 24, 24, 21, 1, 25, 1, 24, 23, 24, 26, 26, 26, 24, 21, 24, 26, 21, 26, 21, 26, 21, 26, 21, 1, 27, 28, 27, 29, 29, 29, 30, 21, 30, 31, 29, 21, 29, 21, 29, 21, 29, 21, 1, 32, 23, 32, 24, 24, 31, 21, 1, 33, 23, 33, 34, 35, 34, 34, 24, 21, 24, 36, 34, 21, 34, 21, 34, 21, 34, 21, 1, 37, 28, 37, 34, 34, 34, 30, 21, 30, 34, 21, 34, 21, 34, 21, 34, 21, 1, 38, 23, 38, 39, 40, 40, 41, 21, 21, 35, 21, 1, 37, 28, 37, 30, 30, 21, 1, 40, 23, 40, 42, 39, 42, 42, 40, 35, 40, 41, 42, 21, 21, 35, 42, 35, 42, 35, 42, 35, 21, 1, 43, 28, 43, 44, 39, 44, 44, 45, 35, 45, 46, 41, 44, 21, 21, 35, 44, 35, 44, 35, 44, 35, 21, 1, 47, 23, 47, 39, 40, 40, 46, 41, 21, 21, 35, 21, 1, 48, 23, 48, 49, 50, 49, 49, 40, 35, 40, 51, 41, 49, 21, 21, 35, 49, 35, 49, 35, 49, 35, 21, 1, 52, 28, 52, 49, 39, 49, 49, 45, 35, 45, 41, 49, 21, 21, 35, 49, 35, 49, 35, 49, 35, 21, 1, 38, 21, 23, 38, 40, 40, 35, 21, 1, 52, 28, 52, 39, 45, 45, 41, 21, 21, 35, 21, 1, 38, 23, 38, 39, 40, 54, 40, 41, 21, 21, 35, 53, 35, 53, 35, 53, 35, 21, 1, 38, 23, 38, 39, 40, 56, 40, 41, 50, 21, 21, 35, 55, 35, 55, 35, 55, 35, 21, 1, 38, 23, 38, 39, 40, 56, 40, 41, 50, 21, 21, 35, 57, 35, 57, 35, 57, 35, 21, 1, 38, 23, 38, 39, 40, 56, 40, 41, 50, 21, 21, 35, 58, 35, 58, 35, 58, 35, 21, 1, 38, 23, 38, 39, 40, 56, 40, 41, 50, 21, 21, 35, 21, 1, 38, 23, 38, 39, 40, 60, 40, 41, 21, 21, 35, 59, 35, 53, 35, 53, 35, 21, 1, 38, 23, 38, 39, 40, 61, 56, 40, 41, 50, 21, 21, 35, 62, 35, 55, 35, 55, 35, 21, 1, 38, 23, 38, 39, 40, 40, 41, 21, 21, 35, 63, 35, 21, 1, 38, 23, 38, 39, 40, 64, 40, 41, 21, 21, 35, 65, 35, 21, 1, 38, 23, 38, 39, 40, 40, 41, 21, 21, 35, 66, 35, 21, 1, 38, 23, 38, 39, 40, 67, 40, 41, 21, 21, 35, 68, 35, 21, 1, 38, 23, 38, 39, 40, 40, 41, 21, 21, 35, 69, 35, 21, 1, 38, 23, 38, 39, 40, 40, 41, 50, 21, 21, 35, 70, 35, 21, 1, 38, 23, 38, 39, 40, 40, 41, 50, 21, 21, 35, 71, 35, 21, 1, 38, 23, 38, 39, 40, 40, 41, 50, 21, 21, 35, 21, 1, 38, 23, 38, 39, 40, 67, 40, 41, 21, 21, 35, 72, 35, 21, 1, 38, 23, 38, 39, 40, 67, 40, 41, 21, 21, 35, 21, 1, 38, 23, 38, 39, 40, 64, 40, 41, 21, 21, 35, 73, 35, 21, 1, 38, 23, 38, 39, 40, 64, 40, 41, 21, 21, 35, 21, 1, 38, 23, 38, 39, 40, 61, 56, 40, 41, 50, 21, 21, 35, 74, 35, 57, 35, 57, 35, 21, 1, 38, 23, 38, 39, 40, 61, 56, 40, 41, 50, 21, 21, 35, 58, 35, 58, 35, 58, 35, 21, 1, 38, 23, 38, 39, 40, 76, 40, 41, 50, 21, 21, 35, 75, 35, 75, 35, 75, 35, 21, 1, 38, 23, 38, 39, 40, 78, 40, 41, 50, 21, 21, 35, 77, 35, 77, 35, 77, 35, 21, 1, 38, 23, 38, 39, 40, 78, 40, 41, 50, 21, 21, 35, 79, 35, 79, 35, 79, 35, 21, 1, 38, 23, 38, 39, 40, 78, 40, 41, 50, 21, 21, 35, 80, 35, 80, 35, 80, 35, 21, 1, 38, 23, 38, 39, 40, 78, 40, 41, 50, 21, 21, 35, 21, 1, 38, 23, 38, 39, 40, 40, 41, 21, 21, 35, 81, 35, 75, 35, 75, 35, 21, 1, 38, 23, 38, 39, 40, 61, 78, 40, 41, 50, 21, 21, 35, 82, 35, 77, 35, 77, 35, 21, 1, 38, 23, 38, 39, 40, 61, 78, 40, 41, 50, 21, 21, 35, 83, 35, 79, 35, 79, 35, 21, 1, 38, 23, 38, 39, 40, 61, 78, 40, 41, 50, 21, 21, 35, 80, 35, 80, 35, 80, 35, 21, 1, 38, 23, 38, 39, 40, 40, 41, 21, 21, 35, 84, 35, 21, 1, 38, 23, 38, 39, 40, 61, 40, 41, 21, 21, 35, 85, 35, 21, 1, 38, 23, 38, 39, 40, 61, 40, 41, 21, 21, 35, 86, 35, 21, 1, 38, 23, 38, 39, 40, 61, 40, 41, 21, 21, 35, 21, 1, 38, 23, 38, 39, 40, 60, 40, 41, 21, 21, 35, 21, 1, 22, 23, 22, 24, 88, 24, 21, 87, 21, 87, 21, 87, 21, 1, 22, 23, 22, 24, 90, 24, 39, 21, 89, 21, 89, 21, 89, 21, 1, 22, 23, 22, 24, 90, 24, 39, 21, 91, 21, 91, 21, 91, 21, 1, 22, 23, 22, 24, 90, 24, 39, 21, 92, 21, 92, 21, 92, 21, 1, 22, 23, 22, 24, 90, 24, 39, 21, 1, 22, 23, 22, 24, 94, 24, 21, 93, 21, 87, 21, 87, 21, 1, 22, 23, 22, 24, 95, 90, 24, 39, 21, 96, 21, 89, 21, 89, 21, 1, 22, 23, 22, 24, 24, 21, 97, 21, 1, 22, 23, 22, 24, 98, 24, 21, 99, 21, 1, 22, 23, 22, 24, 24, 21, 100, 21, 1, 22, 23, 22, 24, 101, 24, 21, 102, 21, 1, 22, 23, 22, 24, 24, 21, 103, 21, 1, 22, 23, 22, 24, 24, 39, 21, 104, 21, 1, 22, 23, 22, 24, 24, 39, 21, 105, 21, 1, 22, 23, 22, 24, 24, 39, 21, 1, 22, 23, 22, 24, 101, 24, 21, 106, 21, 1, 22, 23, 22, 24, 101, 24, 21, 1, 22, 23, 22, 24, 98, 24, 21, 107, 21, 1, 22, 23, 22, 24, 98, 24, 21, 1, 22, 23, 22, 24, 95, 90, 24, 39, 21, 108, 21, 91, 21, 91, 21, 1, 22, 23, 22, 24, 95, 90, 24, 39, 21, 92, 21, 92, 21, 92, 21, 1, 22, 23, 22, 24, 110, 24, 39, 21, 109, 21, 109, 21, 109, 21, 1, 22, 23, 22, 24, 112, 24, 39, 21, 111, 21, 111, 21, 111, 21, 1, 22, 23, 22, 24, 112, 24, 39, 21, 113, 21, 113, 21, 113, 21, 1, 22, 23, 22, 24, 112, 24, 39, 21, 114, 21, 114, 21, 114, 21, 1, 22, 23, 22, 24, 112, 24, 39, 21, 1, 22, 23, 22, 24, 24, 21, 115, 21, 109, 21, 109, 21, 1, 22, 23, 22, 24, 95, 112, 24, 39, 21, 116, 21, 111, 21, 111, 21, 1, 22, 23, 22, 24, 95, 112, 24, 39, 21, 117, 21, 113, 21, 113, 21, 1, 22, 23, 22, 24, 95, 112, 24, 39, 21, 114, 21, 114, 21, 114, 21, 1, 22, 23, 22, 24, 24, 21, 118, 21, 1, 22, 23, 22, 24, 95, 24, 21, 119, 21, 1, 22, 23, 22, 24, 95, 24, 21, 120, 21, 1, 22, 23, 22, 24, 95, 24, 21, 1, 22, 23, 22, 24, 94, 24, 21, 1, 121, 1, 122, 122, 1, 122, 123, 122, 20, 20, 18, 1, 14, 14, 15, 124, 124, 13, 1, 14, 14, 15, 125, 125, 13, 1, 14, 14, 15, 126, 126, 13, 1, 14, 14, 127, 15, 13, 1, 14, 14, 15, 128, 128, 13, 1, 14, 14, 15, 129, 129, 13, 1, 130, 130, 131, 1, 14, 14, 15, 132, 132, 13, 1, 14, 14, 15, 133, 133, 13, 1, 14, 14, 15, 134, 134, 13, 1, 135, 135, 136, 1, 14, 14, 15, 137, 137, 13, 1, 14, 14, 15, 138, 138, 13, 1, 14, 14, 15, 139, 139, 13, 1, 14, 14, 15, 140, 140, 13, 1, 141, 141, 142, 1, 141, 141, 142, 143, 143, 1, 144, 144, 1, 145, 145, 1, 146, 146, 1, 147, 147, 1, 148, 148, 1, 149, 149, 1, 150, 150, 1, 151, 151, 1, 152, 152, 1, 153, 153, 1, 154, 154, 155, 1, 14, 14, 156, 15, 13, 1, 14, 14, 15, 157, 158, 157, 158, 13, 1, 14, 14, 15, 159, 159, 13, 1, 14, 14, 15, 160, 160, 13, 1, 14, 14, 15, 161, 161, 13, 1, 14, 14, 15, 162, 162, 13, 1, 14, 14, 15, 163, 163, 13, 1, 14, 14, 164, 15, 13, 1, 14, 14, 15, 165, 165, 13, 1, 14, 14, 15, 166, 166, 13, 1, 14, 14, 15, 167, 167, 13, 1, 14, 14, 15, 168, 168, 13, 1, 14, 14, 15, 169, 169, 13, 1, 14, 14, 15, 170, 170, 13, 1, 14, 14, 15, 171, 171, 13, 1, 14, 14, 172, 15, 13, 1, 14, 14, 15, 173, 173, 13, 1, 14, 14, 15, 174, 174, 13, 1, 14, 14, 15, 175, 175, 13, 1, 14, 14, 15, 176, 176, 13, 1, 177, 177, 178, 1, 14, 14, 15, 179, 179, 13, 1, 14, 14, 15, 180, 180, 13, 1, 14, 14, 15, 181, 181, 13, 1, 14, 14, 15, 182, 182, 13, 1, 14, 14, 15, 183, 183, 13, 1, 14, 14, 15, 184, 184, 13, 1, 14, 14, 15, 185, 185, 13, 1, 14, 14, 186, 15, 13, 1, 14, 14, 15, 187, 187, 13, 1, 14, 14, 15, 188, 188, 13, 1, 14, 14, 15, 189, 189, 13, 1, 14, 14, 15, 190, 190, 13, 1, 14, 14, 15, 191, 191, 13, 1, 14, 14, 15, 192, 192, 13, 1, 14, 14, 15, 193, 193, 13, 1, 14, 14, 15, 194, 194, 13, 1, 14, 14, 195, 15, 13, 1, 14, 14, 15, 196, 196, 13, 1, 14, 14, 15, 197, 197, 13, 1, 14, 14, 15, 198, 198, 13, 1, 14, 14, 15, 199, 199, 13, 1, 14, 14, 15, 200, 200, 13, 1, 14, 14, 15, 201, 201, 13, 1, 14, 14, 15, 202, 202, 13, 1, 14, 14, 15, 203, 203, 13, 1, 14, 14, 15, 204, 204, 13, 1, 205, 205, 206, 1, 14, 14, 15, 207, 208, 207, 208, 13, 1, 14, 14, 15, 209, 209, 13, 1, 14, 14, 15, 210, 210, 13, 1, 14, 14, 15, 211, 211, 13, 1, 14, 14, 15, 212, 212, 13, 1, 213, 213, 214, 1, 14, 14, 15, 215, 215, 13, 1, 14, 14, 216, 15, 13, 1, 14, 14, 15, 217, 218, 217, 218, 13, 1, 14, 14, 15, 219, 219, 13, 1, 14, 14, 15, 220, 220, 13, 1, 14, 14, 15, 221, 221, 13, 1, 222, 222, 223, 1, 14, 14, 15, 224, 224, 13, 1, 14, 14, 225, 15, 13, 1, 14, 14, 15, 226, 226, 13, 1, 14, 14, 15, 227, 227, 13, 1, 14, 14, 15, 228, 228, 13, 1, 14, 14, 15, 229, 229, 13, 1, 14, 14, 15, 230, 230, 13, 1, 231, 231, 232, 1, 14, 14, 15, 233, 233, 13, 1, 14, 14, 15, 234, 234, 13, 1, 14, 14, 15, 235, 235, 13, 1, 14, 14, 236, 15, 13, 1, 14, 14, 15, 237, 237, 13, 1, 14, 14, 15, 238, 238, 13, 1, 14, 14, 15, 239, 239, 13, 1, 14, 14, 15, 240, 240, 13, 1, 14, 14, 15, 241, 241, 13, 1, 242, 242, 243, 1, 14, 14, 15, 244, 244, 13, 1, 14, 14, 15, 245, 245, 13, 1, 14, 14, 15, 246, 246, 13, 1, 14, 14, 15, 247, 247, 13, 1, 14, 14, 15, 248, 248, 13, 1, 14, 14, 15, 249, 249, 13, 1, 250, 250, 251, 1, 1, 0]; _tsip_machine_parser_header_Str_trans_targs = [2, 0, 3, 4, 94, 101, 105, 100, 110, 122, 170, 191, 201, 2, 3, 4, 3, 4, 5, 91, 7, 5, 5, 6, 7, 208, 8, 9, 6, 8, 7, 10, 9, 10, 11, 12, 56, 5, 12, 13, 14, 19, 15, 16, 15, 14, 17, 16, 17, 18, 20, 21, 12, 22, 55, 23, 26, 24, 25, 27, 42, 28, 40, 29, 30, 38, 31, 32, 36, 33, 34, 35, 37, 39, 41, 43, 51, 44, 47, 45, 46, 48, 49, 50, 52, 53, 54, 57, 90, 58, 61, 59, 60, 62, 77, 63, 75, 64, 65, 73, 66, 67, 71, 68, 69, 70, 72, 74, 76, 78, 86, 79, 82, 80, 81, 83, 84, 85, 87, 88, 89, 92, 93, 6, 95, 96, 97, 98, 99, 100, 3, 4, 102, 103, 104, 3, 4, 106, 107, 108, 109, 3, 4, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 3, 4, 123, 124, 143, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 3, 4, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 3, 4, 171, 176, 172, 173, 174, 175, 3, 4, 177, 178, 179, 183, 180, 181, 182, 3, 4, 184, 185, 186, 187, 188, 189, 190, 3, 4, 192, 193, 194, 195, 196, 197, 198, 199, 200, 3, 4, 202, 203, 204, 205, 206, 207, 3, 4]; _tsip_machine_parser_header_Str_trans_actions = [1, 0, 49, 49, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 43, 43, 0, 0, 1, 0, 7, 0, 3, 3, 3, 5, 1, 46, 46, 0, 46, 0, 3, 3, 0, 0, 0, 46, 3, 0, 3, 0, 1, 46, 0, 46, 0, 3, 3, 0, 0, 0, 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 10, 10, 0, 0, 0, 13, 13, 0, 0, 0, 0, 16, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 25, 0, 0, 0, 0, 0, 0, 28, 28, 0, 0, 0, 0, 0, 0, 0, 31, 31, 0, 0, 0, 0, 0, 0, 0, 34, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37, 37, 0, 0, 0, 0, 0, 0, 40, 40]; tsip_machine_parser_header_Str_start = 1; tsip_machine_parser_header_Str_first_final = 208; tsip_machine_parser_header_Str_error = 0; tsip_machine_parser_header_Str_en_main = 1; function tsip_header_Str(a, b) { tsip_header.call(this, a); this.s_value = b } tsip_header_Str.prototype.toString = function() { return this.s_value }; tsip_header_Str.prototype.Parse = function(l) { var e = 0; var j = 0; var v = l.length; var g = v; var w = tsk_buff_str2ib(l); var u; var m = null; e = tsip_machine_parser_header_Str_start; var f, n, b, d, c, r, k; var o, h, a, q, t; var s; f = n = b = r = k = null; o = 0; h = 10; a = 15; q = 20; t = 30; s = 40; while (true) { _trigger_goto = false; if (o <= 0) { if (j == v) { o = t; continue } if (e == 0) { o = s; continue } } if (o <= h) { b = _tsip_machine_parser_header_Str_key_offsets[e]; n = _tsip_machine_parser_header_Str_index_offsets[e]; f = _tsip_machine_parser_header_Str_single_lengths[e]; _break_match = false; do { if (f > 0) { _lower = b; _upper = b + f - 1; while (true) { if (_upper < _lower) { break } _mid = _lower + ((_upper - _lower) >> 1); if (w[j] < _tsip_machine_parser_header_Str_trans_keys[_mid]) { _upper = _mid - 1 } else { if (w[j] > _tsip_machine_parser_header_Str_trans_keys[_mid]) { _lower = _mid + 1 } else { n += (_mid - b); _break_match = true; break } } } if (_break_match) { break } b += f; n += f } f = _tsip_machine_parser_header_Str_range_lengths[e]; if (f > 0) { _lower = b; _upper = b + (f << 1) - 2; while (true) { if (_upper < _lower) { break } _mid = _lower + (((_upper - _lower) >> 1) & ~1); if (w[j] < _tsip_machine_parser_header_Str_trans_keys[_mid]) { _upper = _mid - 2 } else { if (w[j] > _tsip_machine_parser_header_Str_trans_keys[_mid + 1]) { _lower = _mid + 2 } else { n += ((_mid - b) >> 1); _break_match = true; break } } } if (_break_match) { break } n += f } } while (false); n = _tsip_machine_parser_header_Str_indicies[n]; e = _tsip_machine_parser_header_Str_trans_targs[n]; if (_tsip_machine_parser_header_Str_trans_actions[n] != 0) { r = _tsip_machine_parser_header_Str_trans_actions[n]; k = _tsip_machine_parser_header_Str_actions[r]; r += 1; while (k > 0) { k -= 1; r += 1; switch (_tsip_machine_parser_header_Str_actions[r - 1]) { case 0: u = j; break; case 1: m = new tsip_header_Call_ID(); break; case 2: m = new tsip_header_Date(); break; case 3: m = new tsip_header_Event(); break; case 4: m = new tsip_header_Organization(); break; case 5: m = new tsip_header_P_Access_Network_Info(); break; case 6: m = new tsip_header_P_Charging_Function_Addresses(); break; case 7: m = new tsip_header_Server(); break; case 8: m = new tsip_header_SIP_ETag(); break; case 9: m = new tsip_header_SIP_If_Match(); break; case 10: m = new tsip_header_User_Agent(); break; case 11: m = new tsip_header_Warning(); break; case 12: m = new tsip_header_Dummy(); break; case 13: if (m) { m.s_name = tsk_ragel_parser_get_string(l, j, u) } break; case 14: if (m) { m.s_value = tsk_ragel_parser_get_string(l, j, u) } break; case 15: if (m) { tsk_ragel_add_param(l, j, u, m.ao_params) } break; case 16: break } } } if (_trigger_goto) { continue } } if (o <= q) { if (e == 0) { o = s; continue } j += 1; if (j != v) { o = h; continue } } if (o <= t) {} if (o <= s) { break } } if (e < 208) { tsk_utils_log_error("Failed to parse header: " + l); return null } return m }; function tsip_header_Call_ID(a) { tsip_header_Str.call(this, tsip_header_type_e.Call_ID, a) } function tsip_header_Date(a) { tsip_header_Str.call(this, tsip_header_type_e.Date, a) } function tsip_header_Event(a) { tsip_header_Str.call(this, tsip_header_type_e.Event, a) } function tsip_header_Organization(a) { tsip_header_Str.call(this, tsip_header_type_e.Organization, a) } function tsip_header_P_Access_Network_Info(a) { tsip_header_Str.call(this, tsip_header_type_e.P_Access_Network_Info, a) } function tsip_header_P_Charging_Function_Addresses(a) { tsip_header_Str.call(this, tsip_header_type_e.P_Charging_Function_Addresses, a) } function tsip_header_Server(a) { tsip_header_Str.call(this, tsip_header_type_e.Server, a) } function tsip_header_SIP_ETag(a) { tsip_header_Str.call(this, tsip_header_type_e.SIP_ETag, a) } function tsip_header_SIP_If_Match(a) { tsip_header_Str.call(this, tsip_header_type_e.SIP_If_Match, a) } function tsip_header_User_Agent(a) { tsip_header_Str.call(this, tsip_header_type_e.User_Agent, a) } function tsip_header_Warning(a) { tsip_header_Str.call(this, tsip_header_type_e.Warning, a) } function tsip_header_Dummy(b, a) { tsip_header_Str.call(this, tsip_header_type_e.Dummy, a); this.s_name = b } var TSIP_HEADER_ALLOW_DEFAULT = "ACK, BYE, CANCEL, INVITE, MESSAGE, NOTIFY, OPTIONS, PRACK, REFER, UPDATE"; tsip_header_StrArray.prototype = Object.create(tsip_header.prototype); tsip_header_StrArray.prototype.as_values = null; tsip_header_Allow.prototype = Object.create(tsip_header_StrArray.prototype); tsip_header_Allow_Events.prototype = Object.create(tsip_header_StrArray.prototype); tsip_header_Privacy.prototype = Object.create(tsip_header_StrArray.prototype); tsip_header_Require.prototype = Object.create(tsip_header_StrArray.prototype); tsip_header_Supported.prototype = Object.create(tsip_header_StrArray.prototype); _tsip_machine_parser_header_Allow_actions = [0, 1, 0, 1, 1, 1, 2, 1, 3, 1, 4, 1, 5, 1, 6, 1, 7]; _tsip_machine_parser_header_Allow_key_offsets = [0, 0, 12, 14, 16, 18, 20, 24, 27, 44, 45, 61, 65, 66, 68, 71, 88, 89, 91, 107, 109, 111, 113, 115, 117, 119, 122, 125, 141, 142, 144, 159, 176, 180, 181, 183, 186, 199, 202, 204, 206, 208, 210, 212, 214, 217, 220, 249, 250, 252, 280, 296, 322, 340, 358, 376, 394, 412, 430, 448, 450, 470, 488, 506, 524, 542, 560, 578, 596, 614, 632, 650, 668, 686, 704, 722, 740, 758, 776, 794, 812, 830, 832, 834, 836, 838, 840, 842, 845, 848, 850, 852, 854, 856, 858, 860, 862, 864]; _tsip_machine_parser_header_Allow_trans_keys = [65, 75, 80, 82, 83, 85, 97, 107, 112, 114, 115, 117, 76, 108, 76, 108, 79, 111, 87, 119, 9, 32, 45, 58, 9, 32, 58, 9, 13, 32, 33, 37, 39, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 10, 9, 13, 32, 33, 37, 39, 44, 126, 42, 46, 48, 57, 65, 90, 95, 122, 9, 13, 32, 44, 10, 9, 32, 9, 32, 44, 9, 13, 32, 33, 37, 39, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 10, 9, 32, 9, 32, 33, 37, 39, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 69, 101, 86, 118, 69, 101, 78, 110, 84, 116, 83, 115, 9, 32, 58, 9, 32, 58, 9, 13, 32, 33, 37, 39, 45, 126, 42, 43, 48, 57, 65, 90, 95, 122, 10, 9, 32, 9, 32, 33, 37, 39, 45, 126, 42, 43, 48, 57, 65, 90, 95, 122, 9, 13, 32, 33, 37, 39, 44, 46, 126, 42, 45, 48, 57, 65, 90, 95, 122, 9, 13, 32, 44, 10, 9, 32, 9, 32, 44, 33, 37, 39, 45, 126, 42, 43, 48, 57, 65, 90, 95, 122, 9, 32, 58, 82, 114, 73, 105, 86, 118, 65, 97, 67, 99, 89, 121, 9, 32, 58, 9, 32, 58, 9, 13, 32, 33, 37, 39, 67, 72, 73, 78, 83, 85, 99, 104, 105, 110, 115, 117, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 10, 9, 32, 9, 32, 33, 37, 39, 67, 72, 73, 78, 83, 85, 99, 104, 105, 110, 115, 117, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 13, 33, 37, 39, 59, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 33, 37, 39, 67, 72, 73, 78, 83, 85, 99, 104, 105, 110, 115, 117, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 13, 33, 37, 39, 59, 82, 114, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 13, 33, 37, 39, 59, 73, 105, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 13, 33, 37, 39, 59, 84, 116, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 13, 33, 37, 39, 59, 73, 105, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 13, 33, 37, 39, 59, 67, 99, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 13, 33, 37, 39, 59, 65, 97, 126, 42, 43, 45, 46, 48, 57, 66, 90, 95, 122, 13, 33, 37, 39, 59, 76, 108, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 13, 59, 13, 33, 37, 39, 59, 69, 73, 101, 105, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 13, 33, 37, 39, 59, 65, 97, 126, 42, 43, 45, 46, 48, 57, 66, 90, 95, 122, 13, 33, 37, 39, 59, 68, 100, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 13, 33, 37, 39, 59, 69, 101, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 13, 33, 37, 39, 59, 82, 114, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 13, 33, 37, 39, 59, 83, 115, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 13, 33, 37, 39, 59, 84, 116, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 13, 33, 37, 39, 59, 79, 111, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 13, 33, 37, 39, 59, 82, 114, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 13, 33, 37, 39, 59, 89, 121, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 13, 33, 37, 39, 59, 68, 100, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 13, 33, 37, 39, 59, 79, 111, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 13, 33, 37, 39, 59, 78, 110, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 13, 33, 37, 39, 59, 69, 101, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 13, 33, 37, 39, 59, 69, 101, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 13, 33, 37, 39, 59, 83, 115, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 13, 33, 37, 39, 59, 83, 115, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 13, 33, 37, 39, 59, 73, 105, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 13, 33, 37, 39, 59, 79, 111, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 13, 33, 37, 39, 59, 78, 110, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 13, 33, 37, 39, 59, 83, 115, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 69, 101, 81, 113, 85, 117, 73, 105, 82, 114, 69, 101, 9, 32, 58, 9, 32, 58, 85, 117, 80, 112, 80, 112, 79, 111, 82, 114, 84, 116, 69, 101, 68, 100, 0]; _tsip_machine_parser_header_Allow_single_lengths = [0, 12, 2, 2, 2, 2, 4, 3, 7, 1, 8, 4, 1, 2, 3, 7, 1, 2, 6, 2, 2, 2, 2, 2, 2, 3, 3, 8, 1, 2, 7, 9, 4, 1, 2, 3, 5, 3, 2, 2, 2, 2, 2, 2, 3, 3, 19, 1, 2, 18, 6, 16, 8, 8, 8, 8, 8, 8, 8, 2, 10, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 2, 2, 2, 2, 2, 2, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 0]; _tsip_machine_parser_header_Allow_range_lengths = [0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 4, 0, 0, 0, 0, 5, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 4, 4, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]; _tsip_machine_parser_header_Allow_index_offsets = [0, 0, 13, 16, 19, 22, 25, 30, 34, 47, 49, 62, 67, 69, 72, 76, 89, 91, 94, 106, 109, 112, 115, 118, 121, 124, 128, 132, 145, 147, 150, 162, 176, 181, 183, 186, 190, 200, 204, 207, 210, 213, 216, 219, 222, 226, 230, 255, 257, 260, 284, 296, 318, 332, 346, 360, 374, 388, 402, 416, 419, 435, 449, 463, 477, 491, 505, 519, 533, 547, 561, 575, 589, 603, 617, 631, 645, 659, 673, 687, 701, 715, 718, 721, 724, 727, 730, 733, 737, 741, 744, 747, 750, 753, 756, 759, 762, 765]; _tsip_machine_parser_header_Allow_indicies = [0, 2, 3, 4, 5, 6, 0, 2, 3, 4, 5, 6, 1, 7, 7, 1, 8, 8, 1, 9, 9, 1, 10, 10, 1, 11, 11, 12, 13, 1, 14, 14, 15, 1, 15, 16, 15, 17, 17, 17, 17, 17, 17, 17, 17, 17, 1, 18, 1, 19, 20, 19, 21, 21, 21, 22, 21, 21, 21, 21, 21, 1, 23, 24, 23, 25, 1, 26, 1, 27, 27, 1, 27, 27, 25, 1, 25, 28, 25, 17, 17, 17, 17, 17, 17, 17, 17, 17, 1, 29, 1, 30, 30, 1, 30, 30, 17, 17, 17, 17, 17, 17, 17, 17, 17, 1, 31, 31, 1, 32, 32, 1, 33, 33, 1, 34, 34, 1, 35, 35, 1, 6, 6, 1, 36, 36, 37, 1, 38, 38, 39, 1, 39, 40, 39, 41, 41, 41, 41, 41, 41, 41, 41, 41, 1, 42, 1, 43, 43, 1, 43, 43, 41, 41, 41, 41, 41, 41, 41, 41, 41, 1, 44, 20, 44, 45, 45, 45, 46, 47, 45, 45, 45, 45, 45, 1, 48, 49, 48, 39, 1, 50, 1, 51, 51, 1, 51, 51, 39, 1, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1, 52, 52, 53, 1, 54, 54, 1, 55, 55, 1, 56, 56, 1, 57, 57, 1, 58, 58, 1, 59, 59, 1, 60, 60, 61, 1, 62, 62, 63, 1, 63, 64, 63, 65, 65, 65, 66, 67, 68, 69, 70, 71, 66, 67, 68, 69, 70, 71, 65, 65, 65, 65, 65, 65, 1, 72, 1, 73, 73, 1, 73, 73, 65, 65, 65, 66, 67, 68, 69, 70, 71, 66, 67, 68, 69, 70, 71, 65, 65, 65, 65, 65, 65, 1, 20, 74, 74, 74, 75, 74, 74, 74, 74, 74, 74, 1, 65, 65, 65, 66, 67, 68, 69, 70, 71, 66, 67, 68, 69, 70, 71, 65, 65, 65, 65, 65, 65, 1, 20, 74, 74, 74, 75, 76, 76, 74, 74, 74, 74, 74, 74, 1, 20, 74, 74, 74, 75, 77, 77, 74, 74, 74, 74, 74, 74, 1, 20, 74, 74, 74, 75, 78, 78, 74, 74, 74, 74, 74, 74, 1, 20, 74, 74, 74, 75, 79, 79, 74, 74, 74, 74, 74, 74, 1, 20, 74, 74, 74, 75, 80, 80, 74, 74, 74, 74, 74, 74, 1, 20, 74, 74, 74, 75, 81, 81, 74, 74, 74, 74, 74, 74, 1, 20, 74, 74, 74, 75, 82, 82, 74, 74, 74, 74, 74, 74, 1, 20, 75, 1, 20, 74, 74, 74, 75, 83, 84, 83, 84, 74, 74, 74, 74, 74, 74, 1, 20, 74, 74, 74, 75, 85, 85, 74, 74, 74, 74, 74, 74, 1, 20, 74, 74, 74, 75, 86, 86, 74, 74, 74, 74, 74, 74, 1, 20, 74, 74, 74, 75, 87, 87, 74, 74, 74, 74, 74, 74, 1, 20, 74, 74, 74, 75, 82, 82, 74, 74, 74, 74, 74, 74, 1, 20, 74, 74, 74, 75, 88, 88, 74, 74, 74, 74, 74, 74, 1, 20, 74, 74, 74, 75, 89, 89, 74, 74, 74, 74, 74, 74, 1, 20, 74, 74, 74, 75, 90, 90, 74, 74, 74, 74, 74, 74, 1, 20, 74, 74, 74, 75, 91, 91, 74, 74, 74, 74, 74, 74, 1, 20, 74, 74, 74, 75, 82, 82, 74, 74, 74, 74, 74, 74, 1, 20, 74, 74, 74, 75, 82, 82, 74, 74, 74, 74, 74, 74, 1, 20, 74, 74, 74, 75, 92, 92, 74, 74, 74, 74, 74, 74, 1, 20, 74, 74, 74, 75, 93, 93, 74, 74, 74, 74, 74, 74, 1, 20, 74, 74, 74, 75, 82, 82, 74, 74, 74, 74, 74, 74, 1, 20, 74, 74, 74, 75, 94, 94, 74, 74, 74, 74, 74, 74, 1, 20, 74, 74, 74, 75, 95, 95, 74, 74, 74, 74, 74, 74, 1, 20, 74, 74, 74, 75, 96, 96, 74, 74, 74, 74, 74, 74, 1, 20, 74, 74, 74, 75, 97, 97, 74, 74, 74, 74, 74, 74, 1, 20, 74, 74, 74, 75, 98, 98, 74, 74, 74, 74, 74, 74, 1, 20, 74, 74, 74, 75, 82, 82, 74, 74, 74, 74, 74, 74, 1, 20, 74, 74, 74, 75, 86, 86, 74, 74, 74, 74, 74, 74, 1, 99, 99, 1, 100, 100, 1, 101, 101, 1, 102, 102, 1, 103, 103, 1, 104, 104, 1, 105, 105, 106, 1, 107, 107, 25, 1, 108, 108, 1, 109, 109, 1, 110, 110, 1, 111, 111, 1, 112, 112, 1, 113, 113, 1, 114, 114, 1, 2, 2, 1, 1, 0]; _tsip_machine_parser_header_Allow_trans_targs = [2, 0, 37, 38, 81, 89, 25, 3, 4, 5, 6, 7, 19, 8, 7, 8, 9, 10, 97, 11, 9, 10, 15, 11, 12, 15, 13, 14, 16, 17, 18, 20, 21, 22, 23, 24, 26, 27, 26, 27, 28, 31, 29, 30, 32, 31, 27, 36, 32, 33, 34, 35, 7, 8, 39, 40, 41, 42, 43, 44, 45, 46, 45, 46, 47, 50, 52, 60, 70, 71, 74, 80, 48, 49, 50, 51, 53, 54, 55, 56, 57, 58, 59, 61, 65, 62, 63, 64, 66, 67, 68, 69, 72, 73, 75, 76, 77, 78, 79, 82, 83, 84, 85, 86, 87, 88, 15, 88, 90, 91, 92, 93, 94, 95, 96]; _tsip_machine_parser_header_Allow_trans_actions = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 5, 0, 0, 0, 1, 15, 3, 3, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 0, 0, 0, 1, 0, 0, 3, 0, 3, 0, 0, 0, 0, 0, 13, 13, 0, 0, 0, 0, 0, 0, 9, 9, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 11, 0, 0, 0, 0, 0, 0, 0, 0]; tsip_machine_parser_header_Allow_start = 1; tsip_machine_parser_header_Allow_first_final = 97; tsip_machine_parser_header_Allow_error = 0; tsip_machine_parser_header_Allow_en_main = 1; function tsip_header_StrArray(a, b) { tsip_header.call(this, a); this.as_values = new Array(); if (b) { this.as_values.push(b) } } tsip_header_StrArray.prototype.toString = function() { var c = null; var b; switch (this.e_type) { case tsip_header_type_e.Privacy: b = ";"; break; default: b = ","; break } for (var a = 0; a < this.as_values.length; ++a) { if (a == 0) { c = this.as_values[a] } else { c += tsk_string_format("{0}{1}", b, this.as_values[a]) } } return c }; tsip_header_StrArray.prototype.has_value = function(c) { if (this.as_values && c) { var a = c.toLowerCase(); for (var b = 0; b < this.as_values.length; ++b) { if (this.as_values[b].toLowerCase() == a) { return true } } } return false }; tsip_header_StrArray.prototype.Parse = function(l) { var e = 0; var j = 0; var v = l.length; var g = v; var w = tsk_buff_str2ib(l); var u; var m = null; e = tsip_machine_parser_header_Allow_start; var f, n, b, d, c, r, k; var o, h, a, q, t; var s; f = n = b = r = k = null; o = 0; h = 10; a = 15; q = 20; t = 30; s = 40; while (true) { _trigger_goto = false; if (o <= 0) { if (j == v) { o = t; continue } if (e == 0) { o = s; continue } } if (o <= h) { b = _tsip_machine_parser_header_Allow_key_offsets[e]; n = _tsip_machine_parser_header_Allow_index_offsets[e]; f = _tsip_machine_parser_header_Allow_single_lengths[e]; _break_match = false; do { if (f > 0) { _lower = b; _upper = b + f - 1; while (true) { if (_upper < _lower) { break } _mid = _lower + ((_upper - _lower) >> 1); if (w[j] < _tsip_machine_parser_header_Allow_trans_keys[_mid]) { _upper = _mid - 1 } else { if (w[j] > _tsip_machine_parser_header_Allow_trans_keys[_mid]) { _lower = _mid + 1 } else { n += (_mid - b); _break_match = true; break } } } if (_break_match) { break } b += f; n += f } f = _tsip_machine_parser_header_Allow_range_lengths[e]; if (f > 0) { _lower = b; _upper = b + (f << 1) - 2; while (true) { if (_upper < _lower) { break } _mid = _lower + (((_upper - _lower) >> 1) & ~1); if (w[j] < _tsip_machine_parser_header_Allow_trans_keys[_mid]) { _upper = _mid - 2 } else { if (w[j] > _tsip_machine_parser_header_Allow_trans_keys[_mid + 1]) { _lower = _mid + 2 } else { n += ((_mid - b) >> 1); _break_match = true; break } } } if (_break_match) { break } n += f } } while (false); n = _tsip_machine_parser_header_Allow_indicies[n]; e = _tsip_machine_parser_header_Allow_trans_targs[n]; if (_tsip_machine_parser_header_Allow_trans_actions[n] != 0) { r = _tsip_machine_parser_header_Allow_trans_actions[n]; k = _tsip_machine_parser_header_Allow_actions[r]; r += 1; while (k > 0) { k -= 1; r += 1; switch (_tsip_machine_parser_header_Allow_actions[r - 1]) { case 0: u = j; break; case 1: if (m) { tsk_ragel_parser_add_string(l, j, u, m.as_values) } break; case 2: m = new tsip_header_Allow(); break; case 3: m = new tsip_header_Allow_Events(); break; case 4: m = new tsip_header_Privacy(); break; case 5: m = new tsip_header_Require(); break; case 6: m = new tsip_header_Supported(); break; case 7: break } } } if (_trigger_goto) { continue } } if (o <= q) { if (e == 0) { o = s; continue } j += 1; if (j != v) { o = h; continue } } if (o <= t) {} if (o <= s) { break } } if (e < 97) { tsk_utils_log_error("Failed to parse header: " + l); return null } return m }; function tsip_header_Allow(a) { tsip_header_StrArray.call(this, tsip_header_type_e.Allow, a) } function tsip_header_Allow_Events(a) { tsip_header_StrArray.call(this, tsip_header_type_e.Allow_Events, a) } function tsip_header_Privacy(a) { tsip_header_StrArray.call(this, tsip_header_type_e.Privacy, a) } function tsip_header_Require(a) { tsip_header_StrArray.call(this, tsip_header_type_e.Require, a) } function tsip_header_Supported(a) { tsip_header_StrArray.call(this, tsip_header_type_e.Supported, a) } tsip_header_Authorization.prototype = Object.create(tsip_header.prototype); _tsip_machine_parser_header_Authorization_actions = [0, 1, 0, 1, 1, 1, 2, 1, 3, 1, 4, 1, 5, 1, 6, 1, 7, 1, 8, 1, 9, 1, 10, 1, 11, 1, 12, 1, 13, 1, 14, 1, 15, 1, 16, 2, 0, 8, 2, 0, 9, 2, 0, 11, 2, 0, 12, 2, 0, 15, 2, 5, 0, 2, 6, 0, 2, 7, 0, 2, 8, 0, 2, 15, 0]; _tsip_machine_parser_header_Authorization_key_offsets = [0, 0, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 31, 40, 43, 44, 53, 58, 63, 68, 73, 78, 115, 139, 146, 183, 209, 234, 257, 263, 274, 280, 286, 302, 319, 336, 353, 358, 374, 392, 399, 407, 414, 422, 429, 437, 445, 449, 457, 461, 469, 473, 491, 509, 526, 543, 560, 577, 582, 597, 615, 633, 651, 658, 666, 674, 678, 682, 708, 734, 760, 786, 812, 838, 864, 888, 895, 920, 943, 969, 995, 1021, 1047, 1073, 1097, 1104, 1129, 1140, 1146, 1152, 1180, 1204, 1211, 1242, 1271, 1300, 1329, 1358, 1387, 1416, 1445, 1451, 1477, 1503, 1529, 1553, 1560, 1585, 1596, 1602, 1608, 1634, 1660, 1686, 1712, 1738, 1762, 1769, 1794, 1805, 1811, 1817, 1843, 1869, 1893, 1900, 1925, 1948, 1974, 2002, 2028, 2054, 2078, 2085, 2110, 2121, 2127, 2133, 2159, 2185, 2211, 2237, 2263, 2287, 2294, 2319, 2330, 2336, 2342, 2370, 2396, 2420, 2427, 2452, 2463, 2467, 2478, 2485, 2498, 2542, 2573, 2587, 2618, 2648, 2661, 2685, 2710, 2735, 2760, 2773, 2797, 2823, 2838, 2854, 2869, 2885, 2900, 2916, 2932, 2944, 2960, 2972, 2988, 3000, 3026, 3052, 3077, 3102, 3127, 3152, 3165, 3188, 3214, 3240, 3266, 3281, 3297, 3313, 3325, 3337, 3370, 3403, 3436, 3469, 3502, 3535, 3568, 3601, 3632, 3646, 3677, 3707, 3740, 3773, 3806, 3839, 3872, 3903, 3917, 3948, 3961, 3974, 4018, 4049, 4063, 4094, 4124, 4137, 4161, 4186, 4211, 4236, 4249, 4273, 4299, 4314, 4330, 4345, 4361, 4376, 4392, 4408, 4420, 4436, 4448, 4464, 4476, 4502, 4528, 4553, 4578, 4603, 4628, 4641, 4664, 4690, 4716, 4742, 4757, 4773, 4789, 4801, 4813, 4846, 4879, 4912, 4945, 4978, 5011, 5044, 5077, 5108, 5122, 5153, 5183, 5216, 5249, 5282, 5315, 5348, 5379, 5393, 5424, 5437, 5472, 5503, 5517, 5554, 5590, 5626, 5662, 5698, 5734, 5770, 5806, 5819, 5852, 5885, 5918, 5949, 5963, 5994, 6007, 6020, 6064, 6095, 6109, 6140, 6170, 6183, 6207, 6232, 6257, 6282, 6295, 6319, 6345, 6360, 6376, 6391, 6407, 6422, 6438, 6454, 6466, 6479, 6495, 6507, 6523, 6535, 6561, 6587, 6612, 6637, 6662, 6687, 6700, 6723, 6749, 6775, 6801, 6816, 6832, 6848, 6860, 6872, 6905, 6938, 6971, 7004, 7037, 7070, 7103, 7136, 7167, 7181, 7212, 7242, 7275, 7308, 7341, 7374, 7407, 7438, 7452, 7483, 7496, 7531, 7562, 7576, 7613, 7649, 7685, 7721, 7757, 7793, 7829, 7865, 7878, 7911, 7944, 7977, 8008, 8022, 8053, 8066, 8099, 8132, 8165, 8198, 8231, 8262, 8276, 8307, 8320, 8333, 8377, 8408, 8422, 8453, 8483, 8496, 8520, 8545, 8570, 8595, 8608, 8632, 8658, 8673, 8689, 8704, 8720, 8735, 8751, 8767, 8779, 8792, 8808, 8820, 8836, 8848, 8874, 8900, 8925, 8950, 8975, 9000, 9013, 9036, 9062, 9088, 9114, 9129, 9145, 9161, 9173, 9185, 9218, 9251, 9284, 9317, 9350, 9383, 9416, 9449, 9480, 9494, 9525, 9555, 9588, 9621, 9654, 9687, 9720, 9751, 9765, 9796, 9809, 9844, 9875, 9889, 9926, 9962, 9998, 10034, 10070, 10106, 10142, 10178, 10191, 10224, 10257, 10290, 10321, 10335, 10366, 10379, 10412, 10445, 10478, 10511, 10544, 10575, 10589, 10620, 10633, 10666, 10699, 10730, 10744, 10775, 10805, 10838, 10873, 10906, 10939, 10970, 10984, 11015, 11028, 11041, 11085, 11116, 11130, 11161, 11191, 11204, 11228, 11253, 11278, 11303, 11316, 11340, 11366, 11381, 11397, 11412, 11428, 11443, 11459, 11475, 11487, 11500, 11516, 11528, 11544, 11556, 11582, 11608, 11633, 11658, 11683, 11708, 11721, 11744, 11770, 11796, 11822, 11837, 11853, 11869, 11881, 11893, 11926, 11959, 11992, 12025, 12058, 12091, 12124, 12157, 12188, 12202, 12233, 12263, 12296, 12329, 12362, 12395, 12428, 12459, 12473, 12504, 12517, 12552, 12583, 12597, 12634, 12670, 12706, 12742, 12778, 12814, 12850, 12886, 12899, 12932, 12965, 12998, 13029, 13043, 13074, 13087, 13120, 13153, 13186, 13219, 13252, 13283, 13297, 13328, 13341, 13374, 13407, 13438, 13452, 13483, 13513, 13546, 13581, 13614, 13647, 13678, 13692, 13723, 13736, 13769, 13802, 13835, 13868, 13901, 13932, 13946, 13977, 13990, 14003, 14047, 14078, 14092, 14123, 14153, 14166, 14190, 14215, 14240, 14265, 14278, 14302, 14328, 14343, 14359, 14374, 14390, 14405, 14421, 14437, 14449, 14462, 14478, 14490, 14506, 14518, 14544, 14570, 14595, 14620, 14645, 14670, 14683, 14706, 14732, 14758, 14784, 14799, 14815, 14831, 14843, 14855, 14888, 14921, 14954, 14987, 15020, 15053, 15086, 15119, 15150, 15164, 15195, 15225, 15258, 15291, 15324, 15357, 15390, 15421, 15435, 15466, 15479, 15514, 15545, 15559, 15596, 15632, 15668, 15704, 15740, 15776, 15812, 15848, 15861, 15894, 15927, 15960, 15991, 16005, 16036, 16049, 16082, 16115, 16148, 16181, 16214, 16245, 16259, 16290, 16303, 16336, 16369, 16400, 16414, 16445, 16475, 16508, 16543, 16576, 16609, 16640, 16654, 16685, 16698, 16731, 16764, 16797, 16830, 16863, 16894, 16908, 16939, 16952, 16987, 17020, 17051, 17065, 17096, 17109, 17122, 17166, 17197, 17211, 17242, 17272, 17296, 17321, 17346, 17371, 17384, 17408, 17434, 17449, 17465, 17480, 17496, 17511, 17527, 17543, 17555, 17568, 17584, 17596, 17612, 17624, 17650, 17676, 17701, 17726, 17751, 17776, 17789, 17812, 17838, 17864, 17890, 17905, 17921, 17937, 17949, 17961, 17994, 18027, 18060, 18093, 18126, 18159, 18192, 18225, 18256, 18270, 18301, 18331, 18364, 18397, 18430, 18463, 18496, 18527, 18541, 18572, 18607, 18638, 18652, 18689, 18725, 18761, 18797, 18833, 18869, 18905, 18941, 18954, 18987, 19020, 19053, 19084, 19098, 19129, 19162, 19195, 19228, 19261, 19294, 19325, 19339, 19370, 19403, 19436, 19467, 19481, 19512, 19542, 19575, 19610, 19643, 19676, 19707, 19721, 19752, 19785, 19818, 19851, 19884, 19917, 19948, 19962, 19993, 20028, 20061, 20092, 20106, 20137, 20170, 20203, 20236, 20269, 20302, 20335, 20366, 20380, 20411, 20424, 20435, 20441, 20447, 20491, 20522, 20536, 20567, 20597, 20610, 20634, 20659, 20684, 20709, 20722, 20746, 20772, 20787, 20803, 20818, 20834, 20849, 20865, 20881, 20893, 20906, 20922, 20934, 20950, 20962, 20988, 21014, 21039, 21064, 21089, 21114, 21127, 21150, 21176, 21202, 21228, 21243, 21259, 21275, 21287, 21299, 21332, 21365, 21398, 21431, 21464, 21497, 21530, 21563, 21594, 21608, 21639, 21669, 21702, 21735, 21768, 21801, 21834, 21865, 21879, 21910, 21923, 21958, 21989, 22003, 22040, 22076, 22112, 22148, 22184, 22220, 22256, 22292, 22305, 22338, 22371, 22404, 22435, 22449, 22480, 22493, 22526, 22559, 22592, 22625, 22658, 22689, 22703, 22734, 22747, 22780, 22813, 22844, 22858, 22889, 22919, 22952, 22987, 23020, 23053, 23084, 23098, 23129, 23142, 23175, 23208, 23241, 23274, 23307, 23338, 23352, 23383, 23396, 23431, 23464, 23495, 23509, 23540, 23553, 23586, 23619, 23652, 23685, 23718, 23751, 23782, 23796, 23827, 23840, 23873, 23906, 23939, 23972, 24005, 24038, 24069, 24083, 24114, 24127, 24162, 24195, 24226, 24240, 24271, 24284, 24317, 24350, 24383, 24416, 24449, 24482, 24513, 24527, 24558, 24571, 24604, 24637, 24670, 24703, 24736, 24767, 24781, 24812, 24825, 24860, 24893, 24924, 24938, 24969, 24982, 25015, 25048, 25081, 25114, 25147, 25180, 25211, 25225, 25256, 25269, 25302, 25335, 25366, 25380, 25411, 25441, 25474, 25509, 25542, 25575, 25606, 25620, 25651, 25664, 25697, 25730, 25763, 25796, 25829, 25860, 25874, 25905, 25918, 25953, 25986, 26017, 26031, 26062, 26075, 26108, 26141, 26174, 26207, 26240, 26273, 26304, 26318, 26349, 26362, 26395, 26428, 26461, 26494, 26527, 26558, 26572, 26603, 26616, 26649, 26682, 26713, 26727, 26758, 26788, 26821, 26856, 26889, 26922, 26953, 26967, 26998, 27011, 27044, 27077, 27110, 27143, 27176, 27207, 27221, 27252, 27265, 27300, 27333, 27364, 27378, 27409, 27422, 27455, 27488, 27521, 27554, 27587, 27620, 27651, 27665, 27696, 27709, 27744, 27775, 27789, 27826, 27862, 27898, 27934, 27970, 28006, 28042, 28078, 28091, 28124, 28157, 28190, 28221, 28235, 28266, 28299, 28332, 28365, 28398, 28431, 28462, 28476, 28507, 28540, 28573, 28604, 28618, 28649, 28679, 28712, 28747, 28780, 28813, 28844, 28858, 28889, 28922, 28955, 28988, 29021, 29054, 29085, 29099, 29130, 29165, 29198, 29229, 29243, 29274, 29287, 29320, 29353, 29386, 29419, 29452, 29485, 29516, 29530, 29561, 29587, 29613, 29639, 29665, 29691, 29717, 29741, 29748, 29773, 29801, 29827, 29851, 29858, 29883, 29894, 29905, 29912, 29925, 29969, 30000, 30014, 30045, 30075, 30099, 30124, 30149, 30174, 30187, 30211, 30237, 30252, 30268, 30283, 30299, 30314, 30330, 30346, 30358, 30371, 30387, 30399, 30415, 30427, 30453, 30479, 30504, 30529, 30554, 30579, 30592, 30615, 30641, 30667, 30693, 30708, 30724, 30740, 30752, 30764, 30797, 30830, 30863, 30896, 30929, 30962, 30995, 31028, 31059, 31073, 31104, 31134, 31167, 31200, 31233, 31266, 31299, 31330, 31344, 31375, 31410, 31441, 31455, 31492, 31528, 31564, 31600, 31636, 31672, 31708, 31744, 31757, 31790, 31823, 31856, 31887, 31901, 31932, 31965, 31998, 32031, 32064, 32097, 32128, 32142, 32173, 32206, 32239, 32270, 32284, 32315, 32345, 32378, 32413, 32446, 32479, 32510, 32524, 32555, 32588, 32621, 32654, 32687, 32720, 32751, 32765, 32796, 32831, 32864, 32895, 32909, 32940, 32953, 32986, 33019, 33052, 33085, 33118, 33151, 33182, 33196, 33227, 33232, 33237, 33242, 33247, 33252, 33257, 33261, 33266, 33268, 33270, 33272, 33274, 33275, 33277]; _tsip_machine_parser_header_Authorization_trans_keys = [65, 80, 97, 112, 85, 117, 84, 116, 72, 104, 79, 111, 82, 114, 73, 105, 90, 122, 65, 97, 84, 116, 73, 105, 79, 111, 78, 110, 9, 32, 58, 9, 13, 32, 66, 68, 98, 100, 0, 65535, 13, 0, 65535, 10, 9, 13, 32, 66, 68, 98, 100, 0, 65535, 13, 65, 97, 0, 65535, 13, 83, 115, 0, 65535, 13, 73, 105, 0, 65535, 13, 67, 99, 0, 65535, 9, 13, 32, 0, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 65, 67, 78, 79, 81, 82, 85, 97, 99, 110, 111, 113, 114, 117, 126, 0, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 61, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 44, 61, 0, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 65, 67, 78, 79, 81, 82, 85, 97, 99, 110, 111, 113, 114, 117, 126, 0, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 61, 76, 108, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 126, 0, 41, 42, 57, 58, 64, 65, 90, 92, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 44, 0, 65535, 9, 13, 34, 92, 127, 0, 31, 32, 255, 256, 65535, 9, 13, 32, 44, 0, 65535, 10, 13, 0, 127, 128, 65535, 13, 58, 0, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 65535, 13, 58, 93, 0, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 65535, 13, 58, 93, 0, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 65535, 13, 58, 93, 0, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 65535, 13, 58, 93, 0, 65535, 13, 58, 0, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 65535, 13, 46, 58, 93, 0, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 65535, 13, 0, 47, 48, 57, 58, 65535, 13, 46, 0, 47, 48, 57, 58, 65535, 13, 0, 47, 48, 57, 58, 65535, 13, 46, 0, 47, 48, 57, 58, 65535, 13, 0, 47, 48, 57, 58, 65535, 13, 93, 0, 47, 48, 57, 58, 65535, 13, 93, 0, 47, 48, 57, 58, 65535, 13, 93, 0, 65535, 13, 46, 0, 47, 48, 57, 58, 65535, 13, 46, 0, 65535, 13, 46, 0, 47, 48, 57, 58, 65535, 13, 46, 0, 65535, 13, 46, 58, 93, 0, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 65535, 13, 46, 58, 93, 0, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 65535, 13, 58, 93, 0, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 65535, 13, 58, 93, 0, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 65535, 13, 58, 93, 0, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 65535, 13, 58, 93, 0, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 65535, 13, 58, 93, 0, 65535, 13, 0, 47, 48, 57, 58, 64, 65, 70, 71, 96, 97, 102, 103, 65535, 13, 46, 58, 93, 0, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 65535, 13, 46, 58, 93, 0, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 65535, 13, 46, 58, 93, 0, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 65535, 13, 0, 47, 48, 57, 58, 65535, 13, 46, 0, 47, 48, 57, 58, 65535, 13, 46, 0, 47, 48, 57, 58, 65535, 13, 46, 0, 65535, 13, 58, 0, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 61, 71, 103, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 61, 79, 111, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 61, 82, 114, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 61, 73, 105, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 61, 84, 116, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 61, 72, 104, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 61, 77, 109, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 61, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 44, 61, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 126, 0, 41, 42, 57, 58, 64, 65, 90, 92, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 61, 78, 110, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 61, 79, 111, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 61, 78, 110, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 61, 67, 99, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 61, 69, 101, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 61, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 44, 61, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 126, 0, 41, 42, 57, 58, 64, 65, 90, 92, 94, 95, 122, 123, 65535, 9, 13, 34, 92, 127, 0, 31, 32, 255, 256, 65535, 9, 13, 32, 44, 0, 65535, 10, 13, 0, 127, 128, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 61, 67, 79, 99, 111, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 61, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 44, 61, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 126, 0, 41, 42, 46, 48, 57, 58, 64, 65, 90, 92, 94, 95, 96, 97, 102, 103, 122, 123, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 126, 0, 41, 42, 46, 48, 57, 58, 64, 65, 90, 91, 94, 95, 96, 97, 102, 103, 122, 123, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 126, 0, 41, 42, 46, 48, 57, 58, 64, 65, 90, 91, 94, 95, 96, 97, 102, 103, 122, 123, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 126, 0, 41, 42, 46, 48, 57, 58, 64, 65, 90, 91, 94, 95, 96, 97, 102, 103, 122, 123, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 126, 0, 41, 42, 46, 48, 57, 58, 64, 65, 90, 91, 94, 95, 96, 97, 102, 103, 122, 123, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 126, 0, 41, 42, 46, 48, 57, 58, 64, 65, 90, 91, 94, 95, 96, 97, 102, 103, 122, 123, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 126, 0, 41, 42, 46, 48, 57, 58, 64, 65, 90, 91, 94, 95, 96, 97, 102, 103, 122, 123, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 126, 0, 41, 42, 46, 48, 57, 58, 64, 65, 90, 91, 94, 95, 96, 97, 102, 103, 122, 123, 65535, 9, 13, 32, 44, 0, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 61, 78, 110, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 61, 67, 99, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 61, 69, 101, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 61, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 44, 61, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 126, 0, 41, 42, 57, 58, 64, 65, 90, 92, 94, 95, 122, 123, 65535, 9, 13, 34, 92, 127, 0, 31, 32, 255, 256, 65535, 9, 13, 32, 44, 0, 65535, 10, 13, 0, 127, 128, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 61, 80, 112, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 61, 65, 97, 126, 0, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 61, 81, 113, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 61, 85, 117, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 61, 69, 101, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 61, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 44, 61, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 126, 0, 41, 42, 57, 58, 64, 65, 90, 92, 94, 95, 122, 123, 65535, 9, 13, 34, 92, 127, 0, 31, 32, 255, 256, 65535, 9, 13, 32, 44, 0, 65535, 10, 13, 0, 127, 128, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 61, 79, 111, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 61, 80, 112, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 61, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 44, 61, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 126, 0, 41, 42, 57, 58, 64, 65, 90, 92, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 61, 69, 101, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 61, 65, 83, 97, 115, 126, 0, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 61, 76, 108, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 61, 77, 109, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 61, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 44, 61, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 126, 0, 41, 42, 57, 58, 64, 65, 90, 92, 94, 95, 122, 123, 65535, 9, 13, 34, 92, 127, 0, 31, 32, 255, 256, 65535, 9, 13, 32, 44, 0, 65535, 10, 13, 0, 127, 128, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 61, 80, 112, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 61, 79, 111, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 61, 78, 110, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 61, 83, 115, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 61, 69, 101, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 61, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 44, 61, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 126, 0, 41, 42, 57, 58, 64, 65, 90, 92, 94, 95, 122, 123, 65535, 9, 13, 34, 92, 127, 0, 31, 32, 255, 256, 65535, 9, 13, 32, 44, 0, 65535, 10, 13, 0, 127, 128, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 61, 82, 83, 114, 115, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 61, 73, 105, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 61, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 44, 61, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 126, 0, 41, 42, 57, 58, 64, 65, 90, 92, 94, 95, 122, 123, 65535, 9, 13, 34, 92, 127, 0, 31, 32, 255, 256, 65535, 13, 34, 0, 65535, 9, 13, 34, 92, 127, 0, 31, 32, 255, 256, 65535, 10, 13, 34, 0, 127, 128, 65535, 9, 13, 32, 34, 44, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 65, 67, 78, 79, 81, 82, 85, 92, 97, 99, 110, 111, 113, 114, 117, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 34, 58, 92, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 58, 92, 93, 127, 0, 31, 32, 255, 256, 65535, 9, 13, 34, 58, 92, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 46, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 46, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 46, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 92, 93, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 92, 93, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 92, 93, 127, 0, 31, 32, 255, 256, 65535, 9, 13, 34, 46, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 46, 92, 127, 0, 31, 32, 255, 256, 65535, 9, 13, 34, 46, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 46, 92, 127, 0, 31, 32, 255, 256, 65535, 9, 13, 34, 46, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 46, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 58, 92, 93, 127, 0, 31, 32, 255, 256, 65535, 9, 13, 34, 92, 127, 0, 31, 32, 47, 48, 57, 58, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 46, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 46, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 46, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 46, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 46, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 46, 92, 127, 0, 31, 32, 255, 256, 65535, 9, 13, 34, 58, 92, 127, 0, 31, 32, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 76, 92, 108, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 71, 92, 103, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 79, 92, 111, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 82, 92, 114, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 73, 92, 105, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 84, 92, 116, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 72, 92, 104, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 77, 92, 109, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 78, 92, 110, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 79, 92, 111, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 78, 92, 110, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 67, 92, 99, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 69, 92, 101, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 34, 44, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 65, 67, 78, 79, 81, 82, 85, 92, 97, 99, 110, 111, 113, 114, 117, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 34, 58, 92, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 58, 92, 93, 127, 0, 31, 32, 255, 256, 65535, 9, 13, 34, 58, 92, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 46, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 46, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 46, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 92, 93, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 92, 93, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 92, 93, 127, 0, 31, 32, 255, 256, 65535, 9, 13, 34, 46, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 46, 92, 127, 0, 31, 32, 255, 256, 65535, 9, 13, 34, 46, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 46, 92, 127, 0, 31, 32, 255, 256, 65535, 9, 13, 34, 46, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 46, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 58, 92, 93, 127, 0, 31, 32, 255, 256, 65535, 9, 13, 34, 92, 127, 0, 31, 32, 47, 48, 57, 58, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 46, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 46, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 46, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 46, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 46, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 46, 92, 127, 0, 31, 32, 255, 256, 65535, 9, 13, 34, 58, 92, 127, 0, 31, 32, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 76, 92, 108, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 71, 92, 103, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 79, 92, 111, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 82, 92, 114, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 73, 92, 105, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 84, 92, 116, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 72, 92, 104, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 77, 92, 109, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 78, 92, 110, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 79, 92, 111, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 78, 92, 110, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 67, 92, 99, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 69, 92, 101, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 67, 79, 92, 99, 111, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 46, 48, 57, 58, 64, 65, 90, 93, 94, 95, 96, 97, 102, 103, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 92, 126, 127, 0, 31, 35, 41, 42, 46, 48, 57, 58, 64, 65, 90, 91, 94, 95, 96, 97, 102, 103, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 92, 126, 127, 0, 31, 35, 41, 42, 46, 48, 57, 58, 64, 65, 90, 91, 94, 95, 96, 97, 102, 103, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 92, 126, 127, 0, 31, 35, 41, 42, 46, 48, 57, 58, 64, 65, 90, 91, 94, 95, 96, 97, 102, 103, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 92, 126, 127, 0, 31, 35, 41, 42, 46, 48, 57, 58, 64, 65, 90, 91, 94, 95, 96, 97, 102, 103, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 92, 126, 127, 0, 31, 35, 41, 42, 46, 48, 57, 58, 64, 65, 90, 91, 94, 95, 96, 97, 102, 103, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 92, 126, 127, 0, 31, 35, 41, 42, 46, 48, 57, 58, 64, 65, 90, 91, 94, 95, 96, 97, 102, 103, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 92, 126, 127, 0, 31, 35, 41, 42, 46, 48, 57, 58, 64, 65, 90, 91, 94, 95, 96, 97, 102, 103, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 78, 92, 110, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 67, 92, 99, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 69, 92, 101, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 34, 44, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 65, 67, 78, 79, 81, 82, 85, 92, 97, 99, 110, 111, 113, 114, 117, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 34, 58, 92, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 58, 92, 93, 127, 0, 31, 32, 255, 256, 65535, 9, 13, 34, 58, 92, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 46, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 46, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 46, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 92, 93, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 92, 93, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 92, 93, 127, 0, 31, 32, 255, 256, 65535, 9, 13, 32, 34, 44, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 34, 46, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 46, 92, 127, 0, 31, 32, 255, 256, 65535, 9, 13, 34, 46, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 46, 92, 127, 0, 31, 32, 255, 256, 65535, 9, 13, 34, 46, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 46, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 58, 92, 93, 127, 0, 31, 32, 255, 256, 65535, 9, 13, 34, 92, 127, 0, 31, 32, 47, 48, 57, 58, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 46, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 46, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 46, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 46, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 46, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 46, 92, 127, 0, 31, 32, 255, 256, 65535, 9, 13, 34, 58, 92, 127, 0, 31, 32, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 76, 92, 108, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 71, 92, 103, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 79, 92, 111, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 82, 92, 114, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 73, 92, 105, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 84, 92, 116, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 72, 92, 104, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 77, 92, 109, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 78, 92, 110, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 79, 92, 111, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 78, 92, 110, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 67, 92, 99, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 69, 92, 101, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 67, 79, 92, 99, 111, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 46, 48, 57, 58, 64, 65, 90, 93, 94, 95, 96, 97, 102, 103, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 92, 126, 127, 0, 31, 35, 41, 42, 46, 48, 57, 58, 64, 65, 90, 91, 94, 95, 96, 97, 102, 103, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 92, 126, 127, 0, 31, 35, 41, 42, 46, 48, 57, 58, 64, 65, 90, 91, 94, 95, 96, 97, 102, 103, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 92, 126, 127, 0, 31, 35, 41, 42, 46, 48, 57, 58, 64, 65, 90, 91, 94, 95, 96, 97, 102, 103, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 92, 126, 127, 0, 31, 35, 41, 42, 46, 48, 57, 58, 64, 65, 90, 91, 94, 95, 96, 97, 102, 103, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 92, 126, 127, 0, 31, 35, 41, 42, 46, 48, 57, 58, 64, 65, 90, 91, 94, 95, 96, 97, 102, 103, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 92, 126, 127, 0, 31, 35, 41, 42, 46, 48, 57, 58, 64, 65, 90, 91, 94, 95, 96, 97, 102, 103, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 92, 126, 127, 0, 31, 35, 41, 42, 46, 48, 57, 58, 64, 65, 90, 91, 94, 95, 96, 97, 102, 103, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 78, 92, 110, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 67, 92, 99, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 69, 92, 101, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 80, 92, 112, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 65, 92, 97, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 81, 92, 113, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 85, 92, 117, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 69, 92, 101, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 34, 44, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 65, 67, 78, 79, 81, 82, 85, 92, 97, 99, 110, 111, 113, 114, 117, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 34, 58, 92, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 58, 92, 93, 127, 0, 31, 32, 255, 256, 65535, 9, 13, 34, 58, 92, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 46, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 46, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 46, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 92, 93, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 92, 93, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 92, 93, 127, 0, 31, 32, 255, 256, 65535, 9, 13, 32, 34, 44, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 34, 46, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 46, 92, 127, 0, 31, 32, 255, 256, 65535, 9, 13, 34, 46, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 46, 92, 127, 0, 31, 32, 255, 256, 65535, 9, 13, 34, 46, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 46, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 58, 92, 93, 127, 0, 31, 32, 255, 256, 65535, 9, 13, 34, 92, 127, 0, 31, 32, 47, 48, 57, 58, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 46, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 46, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 46, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 46, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 46, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 46, 92, 127, 0, 31, 32, 255, 256, 65535, 9, 13, 34, 58, 92, 127, 0, 31, 32, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 76, 92, 108, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 71, 92, 103, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 79, 92, 111, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 82, 92, 114, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 73, 92, 105, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 84, 92, 116, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 72, 92, 104, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 77, 92, 109, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 78, 92, 110, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 79, 92, 111, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 78, 92, 110, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 67, 92, 99, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 69, 92, 101, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 67, 79, 92, 99, 111, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 46, 48, 57, 58, 64, 65, 90, 93, 94, 95, 96, 97, 102, 103, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 92, 126, 127, 0, 31, 35, 41, 42, 46, 48, 57, 58, 64, 65, 90, 91, 94, 95, 96, 97, 102, 103, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 92, 126, 127, 0, 31, 35, 41, 42, 46, 48, 57, 58, 64, 65, 90, 91, 94, 95, 96, 97, 102, 103, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 92, 126, 127, 0, 31, 35, 41, 42, 46, 48, 57, 58, 64, 65, 90, 91, 94, 95, 96, 97, 102, 103, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 92, 126, 127, 0, 31, 35, 41, 42, 46, 48, 57, 58, 64, 65, 90, 91, 94, 95, 96, 97, 102, 103, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 92, 126, 127, 0, 31, 35, 41, 42, 46, 48, 57, 58, 64, 65, 90, 91, 94, 95, 96, 97, 102, 103, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 92, 126, 127, 0, 31, 35, 41, 42, 46, 48, 57, 58, 64, 65, 90, 91, 94, 95, 96, 97, 102, 103, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 92, 126, 127, 0, 31, 35, 41, 42, 46, 48, 57, 58, 64, 65, 90, 91, 94, 95, 96, 97, 102, 103, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 78, 92, 110, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 67, 92, 99, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 69, 92, 101, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 80, 92, 112, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 65, 92, 97, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 81, 92, 113, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 85, 92, 117, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 69, 92, 101, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 79, 92, 111, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 80, 92, 112, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 69, 92, 101, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 65, 83, 92, 97, 115, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 76, 92, 108, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 77, 92, 109, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 34, 44, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 65, 67, 78, 79, 81, 82, 85, 92, 97, 99, 110, 111, 113, 114, 117, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 34, 58, 92, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 58, 92, 93, 127, 0, 31, 32, 255, 256, 65535, 9, 13, 34, 58, 92, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 46, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 46, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 46, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 92, 93, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 92, 93, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 92, 93, 127, 0, 31, 32, 255, 256, 65535, 9, 13, 32, 34, 44, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 34, 46, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 46, 92, 127, 0, 31, 32, 255, 256, 65535, 9, 13, 34, 46, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 46, 92, 127, 0, 31, 32, 255, 256, 65535, 9, 13, 34, 46, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 46, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 58, 92, 93, 127, 0, 31, 32, 255, 256, 65535, 9, 13, 34, 92, 127, 0, 31, 32, 47, 48, 57, 58, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 46, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 46, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 46, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 46, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 46, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 46, 92, 127, 0, 31, 32, 255, 256, 65535, 9, 13, 34, 58, 92, 127, 0, 31, 32, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 76, 92, 108, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 71, 92, 103, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 79, 92, 111, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 82, 92, 114, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 73, 92, 105, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 84, 92, 116, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 72, 92, 104, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 77, 92, 109, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 78, 92, 110, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 79, 92, 111, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 78, 92, 110, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 67, 92, 99, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 69, 92, 101, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 67, 79, 92, 99, 111, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 46, 48, 57, 58, 64, 65, 90, 93, 94, 95, 96, 97, 102, 103, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 92, 126, 127, 0, 31, 35, 41, 42, 46, 48, 57, 58, 64, 65, 90, 91, 94, 95, 96, 97, 102, 103, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 92, 126, 127, 0, 31, 35, 41, 42, 46, 48, 57, 58, 64, 65, 90, 91, 94, 95, 96, 97, 102, 103, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 92, 126, 127, 0, 31, 35, 41, 42, 46, 48, 57, 58, 64, 65, 90, 91, 94, 95, 96, 97, 102, 103, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 92, 126, 127, 0, 31, 35, 41, 42, 46, 48, 57, 58, 64, 65, 90, 91, 94, 95, 96, 97, 102, 103, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 92, 126, 127, 0, 31, 35, 41, 42, 46, 48, 57, 58, 64, 65, 90, 91, 94, 95, 96, 97, 102, 103, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 92, 126, 127, 0, 31, 35, 41, 42, 46, 48, 57, 58, 64, 65, 90, 91, 94, 95, 96, 97, 102, 103, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 92, 126, 127, 0, 31, 35, 41, 42, 46, 48, 57, 58, 64, 65, 90, 91, 94, 95, 96, 97, 102, 103, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 78, 92, 110, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 67, 92, 99, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 69, 92, 101, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 80, 92, 112, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 65, 92, 97, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 81, 92, 113, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 85, 92, 117, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 69, 92, 101, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 79, 92, 111, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 80, 92, 112, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 69, 92, 101, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 65, 83, 92, 97, 115, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 76, 92, 108, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 77, 92, 109, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 80, 92, 112, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 79, 92, 111, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 78, 92, 110, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 83, 92, 115, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 69, 92, 101, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 34, 44, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 65, 67, 78, 79, 81, 82, 85, 92, 97, 99, 110, 111, 113, 114, 117, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 34, 58, 92, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 58, 92, 93, 127, 0, 31, 32, 255, 256, 65535, 9, 13, 34, 58, 92, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 46, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 46, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 46, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 92, 93, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 92, 93, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 92, 93, 127, 0, 31, 32, 255, 256, 65535, 9, 13, 32, 34, 44, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 34, 46, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 46, 92, 127, 0, 31, 32, 255, 256, 65535, 9, 13, 34, 46, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 46, 92, 127, 0, 31, 32, 255, 256, 65535, 9, 13, 34, 46, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 46, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 58, 92, 93, 127, 0, 31, 32, 255, 256, 65535, 9, 13, 34, 92, 127, 0, 31, 32, 47, 48, 57, 58, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 46, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 46, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 46, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 46, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 46, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 46, 92, 127, 0, 31, 32, 255, 256, 65535, 9, 13, 34, 58, 92, 127, 0, 31, 32, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 76, 92, 108, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 71, 92, 103, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 79, 92, 111, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 82, 92, 114, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 73, 92, 105, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 84, 92, 116, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 72, 92, 104, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 77, 92, 109, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 78, 92, 110, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 79, 92, 111, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 78, 92, 110, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 67, 92, 99, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 69, 92, 101, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 67, 79, 92, 99, 111, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 46, 48, 57, 58, 64, 65, 90, 93, 94, 95, 96, 97, 102, 103, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 92, 126, 127, 0, 31, 35, 41, 42, 46, 48, 57, 58, 64, 65, 90, 91, 94, 95, 96, 97, 102, 103, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 92, 126, 127, 0, 31, 35, 41, 42, 46, 48, 57, 58, 64, 65, 90, 91, 94, 95, 96, 97, 102, 103, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 92, 126, 127, 0, 31, 35, 41, 42, 46, 48, 57, 58, 64, 65, 90, 91, 94, 95, 96, 97, 102, 103, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 92, 126, 127, 0, 31, 35, 41, 42, 46, 48, 57, 58, 64, 65, 90, 91, 94, 95, 96, 97, 102, 103, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 92, 126, 127, 0, 31, 35, 41, 42, 46, 48, 57, 58, 64, 65, 90, 91, 94, 95, 96, 97, 102, 103, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 92, 126, 127, 0, 31, 35, 41, 42, 46, 48, 57, 58, 64, 65, 90, 91, 94, 95, 96, 97, 102, 103, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 92, 126, 127, 0, 31, 35, 41, 42, 46, 48, 57, 58, 64, 65, 90, 91, 94, 95, 96, 97, 102, 103, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 78, 92, 110, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 67, 92, 99, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 69, 92, 101, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 80, 92, 112, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 65, 92, 97, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 81, 92, 113, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 85, 92, 117, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 69, 92, 101, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 79, 92, 111, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 80, 92, 112, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 69, 92, 101, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 65, 83, 92, 97, 115, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 76, 92, 108, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 77, 92, 109, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 80, 92, 112, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 79, 92, 111, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 78, 92, 110, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 83, 92, 115, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 69, 92, 101, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 82, 83, 92, 114, 115, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 73, 92, 105, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 34, 44, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 65, 67, 78, 79, 81, 82, 85, 92, 97, 99, 110, 111, 113, 114, 117, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 34, 58, 92, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 58, 92, 93, 127, 0, 31, 32, 255, 256, 65535, 9, 13, 34, 58, 92, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 46, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 46, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 46, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 92, 93, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 92, 93, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 92, 93, 127, 0, 31, 32, 255, 256, 65535, 9, 13, 32, 34, 44, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 34, 46, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 46, 92, 127, 0, 31, 32, 255, 256, 65535, 9, 13, 34, 46, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 46, 92, 127, 0, 31, 32, 255, 256, 65535, 9, 13, 34, 46, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 46, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 58, 92, 93, 127, 0, 31, 32, 255, 256, 65535, 9, 13, 34, 92, 127, 0, 31, 32, 47, 48, 57, 58, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 46, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 46, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 46, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 46, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 46, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 46, 92, 127, 0, 31, 32, 255, 256, 65535, 9, 13, 34, 58, 92, 127, 0, 31, 32, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 76, 92, 108, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 71, 92, 103, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 79, 92, 111, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 82, 92, 114, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 73, 92, 105, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 84, 92, 116, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 72, 92, 104, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 77, 92, 109, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 78, 92, 110, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 79, 92, 111, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 78, 92, 110, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 67, 92, 99, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 69, 92, 101, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 67, 79, 92, 99, 111, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 46, 48, 57, 58, 64, 65, 90, 93, 94, 95, 96, 97, 102, 103, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 92, 126, 127, 0, 31, 35, 41, 42, 46, 48, 57, 58, 64, 65, 90, 91, 94, 95, 96, 97, 102, 103, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 92, 126, 127, 0, 31, 35, 41, 42, 46, 48, 57, 58, 64, 65, 90, 91, 94, 95, 96, 97, 102, 103, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 92, 126, 127, 0, 31, 35, 41, 42, 46, 48, 57, 58, 64, 65, 90, 91, 94, 95, 96, 97, 102, 103, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 92, 126, 127, 0, 31, 35, 41, 42, 46, 48, 57, 58, 64, 65, 90, 91, 94, 95, 96, 97, 102, 103, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 92, 126, 127, 0, 31, 35, 41, 42, 46, 48, 57, 58, 64, 65, 90, 91, 94, 95, 96, 97, 102, 103, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 92, 126, 127, 0, 31, 35, 41, 42, 46, 48, 57, 58, 64, 65, 90, 91, 94, 95, 96, 97, 102, 103, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 92, 126, 127, 0, 31, 35, 41, 42, 46, 48, 57, 58, 64, 65, 90, 91, 94, 95, 96, 97, 102, 103, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 78, 92, 110, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 67, 92, 99, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 69, 92, 101, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 80, 92, 112, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 65, 92, 97, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 81, 92, 113, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 85, 92, 117, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 69, 92, 101, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 79, 92, 111, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 80, 92, 112, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 69, 92, 101, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 65, 83, 92, 97, 115, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 76, 92, 108, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 77, 92, 109, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 80, 92, 112, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 79, 92, 111, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 78, 92, 110, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 83, 92, 115, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 69, 92, 101, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 82, 83, 92, 114, 115, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 73, 92, 105, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 69, 92, 101, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 82, 92, 114, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 78, 92, 110, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 65, 92, 97, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 77, 92, 109, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 69, 92, 101, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 34, 92, 127, 0, 31, 32, 255, 256, 65535, 9, 13, 32, 44, 0, 65535, 10, 13, 0, 127, 128, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 65, 67, 78, 79, 81, 82, 85, 92, 97, 99, 110, 111, 113, 114, 117, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 34, 58, 92, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 58, 92, 93, 127, 0, 31, 32, 255, 256, 65535, 9, 13, 34, 58, 92, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 46, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 46, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 46, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 92, 93, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 92, 93, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 92, 93, 127, 0, 31, 32, 255, 256, 65535, 9, 13, 32, 34, 44, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 34, 46, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 46, 92, 127, 0, 31, 32, 255, 256, 65535, 9, 13, 34, 46, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 46, 92, 127, 0, 31, 32, 255, 256, 65535, 9, 13, 34, 46, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 46, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 58, 92, 93, 127, 0, 31, 32, 255, 256, 65535, 9, 13, 34, 92, 127, 0, 31, 32, 47, 48, 57, 58, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 46, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 46, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 46, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 46, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 46, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 46, 92, 127, 0, 31, 32, 255, 256, 65535, 9, 13, 34, 58, 92, 127, 0, 31, 32, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 76, 92, 108, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 71, 92, 103, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 79, 92, 111, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 82, 92, 114, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 73, 92, 105, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 84, 92, 116, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 72, 92, 104, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 77, 92, 109, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 78, 92, 110, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 79, 92, 111, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 78, 92, 110, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 67, 92, 99, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 69, 92, 101, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 67, 79, 92, 99, 111, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 46, 48, 57, 58, 64, 65, 90, 93, 94, 95, 96, 97, 102, 103, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 92, 126, 127, 0, 31, 35, 41, 42, 46, 48, 57, 58, 64, 65, 90, 91, 94, 95, 96, 97, 102, 103, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 92, 126, 127, 0, 31, 35, 41, 42, 46, 48, 57, 58, 64, 65, 90, 91, 94, 95, 96, 97, 102, 103, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 92, 126, 127, 0, 31, 35, 41, 42, 46, 48, 57, 58, 64, 65, 90, 91, 94, 95, 96, 97, 102, 103, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 92, 126, 127, 0, 31, 35, 41, 42, 46, 48, 57, 58, 64, 65, 90, 91, 94, 95, 96, 97, 102, 103, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 92, 126, 127, 0, 31, 35, 41, 42, 46, 48, 57, 58, 64, 65, 90, 91, 94, 95, 96, 97, 102, 103, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 92, 126, 127, 0, 31, 35, 41, 42, 46, 48, 57, 58, 64, 65, 90, 91, 94, 95, 96, 97, 102, 103, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 92, 126, 127, 0, 31, 35, 41, 42, 46, 48, 57, 58, 64, 65, 90, 91, 94, 95, 96, 97, 102, 103, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 78, 92, 110, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 67, 92, 99, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 69, 92, 101, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 80, 92, 112, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 65, 92, 97, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 81, 92, 113, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 85, 92, 117, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 69, 92, 101, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 79, 92, 111, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 80, 92, 112, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 69, 92, 101, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 65, 83, 92, 97, 115, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 76, 92, 108, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 77, 92, 109, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 80, 92, 112, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 79, 92, 111, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 78, 92, 110, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 83, 92, 115, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 69, 92, 101, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 82, 83, 92, 114, 115, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 73, 92, 105, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 69, 92, 101, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 82, 92, 114, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 78, 92, 110, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 65, 92, 97, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 77, 92, 109, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 69, 92, 101, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 69, 92, 101, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 82, 92, 114, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 78, 92, 110, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 65, 92, 97, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 77, 92, 109, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 69, 92, 101, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 82, 83, 92, 114, 115, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 73, 92, 105, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 69, 92, 101, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 82, 92, 114, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 78, 92, 110, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 65, 92, 97, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 77, 92, 109, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 69, 92, 101, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 80, 92, 112, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 79, 92, 111, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 78, 92, 110, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 83, 92, 115, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 69, 92, 101, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 82, 83, 92, 114, 115, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 73, 92, 105, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 69, 92, 101, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 82, 92, 114, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 78, 92, 110, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 65, 92, 97, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 77, 92, 109, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 69, 92, 101, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 79, 92, 111, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 80, 92, 112, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 69, 92, 101, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 65, 83, 92, 97, 115, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 76, 92, 108, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 77, 92, 109, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 80, 92, 112, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 79, 92, 111, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 78, 92, 110, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 83, 92, 115, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 69, 92, 101, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 82, 83, 92, 114, 115, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 73, 92, 105, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 69, 92, 101, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 82, 92, 114, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 78, 92, 110, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 65, 92, 97, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 77, 92, 109, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 69, 92, 101, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 80, 92, 112, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 65, 92, 97, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 81, 92, 113, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 85, 92, 117, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 69, 92, 101, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 79, 92, 111, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 80, 92, 112, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 69, 92, 101, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 65, 83, 92, 97, 115, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 76, 92, 108, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 77, 92, 109, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 80, 92, 112, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 79, 92, 111, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 78, 92, 110, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 83, 92, 115, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 69, 92, 101, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 82, 83, 92, 114, 115, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 73, 92, 105, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 69, 92, 101, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 82, 92, 114, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 78, 92, 110, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 65, 92, 97, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 77, 92, 109, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 69, 92, 101, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 67, 79, 92, 99, 111, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 46, 48, 57, 58, 64, 65, 90, 93, 94, 95, 96, 97, 102, 103, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 92, 126, 127, 0, 31, 35, 41, 42, 46, 48, 57, 58, 64, 65, 90, 91, 94, 95, 96, 97, 102, 103, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 92, 126, 127, 0, 31, 35, 41, 42, 46, 48, 57, 58, 64, 65, 90, 91, 94, 95, 96, 97, 102, 103, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 92, 126, 127, 0, 31, 35, 41, 42, 46, 48, 57, 58, 64, 65, 90, 91, 94, 95, 96, 97, 102, 103, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 92, 126, 127, 0, 31, 35, 41, 42, 46, 48, 57, 58, 64, 65, 90, 91, 94, 95, 96, 97, 102, 103, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 92, 126, 127, 0, 31, 35, 41, 42, 46, 48, 57, 58, 64, 65, 90, 91, 94, 95, 96, 97, 102, 103, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 92, 126, 127, 0, 31, 35, 41, 42, 46, 48, 57, 58, 64, 65, 90, 91, 94, 95, 96, 97, 102, 103, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 92, 126, 127, 0, 31, 35, 41, 42, 46, 48, 57, 58, 64, 65, 90, 91, 94, 95, 96, 97, 102, 103, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 78, 92, 110, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 67, 92, 99, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 69, 92, 101, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 80, 92, 112, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 65, 92, 97, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 81, 92, 113, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 85, 92, 117, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 69, 92, 101, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 79, 92, 111, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 80, 92, 112, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 69, 92, 101, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 65, 83, 92, 97, 115, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 76, 92, 108, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 77, 92, 109, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 80, 92, 112, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 79, 92, 111, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 78, 92, 110, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 83, 92, 115, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 69, 92, 101, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 82, 83, 92, 114, 115, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 73, 92, 105, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 69, 92, 101, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 82, 92, 114, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 78, 92, 110, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 65, 92, 97, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 77, 92, 109, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 69, 92, 101, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 61, 69, 101, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 61, 82, 114, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 61, 78, 110, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 61, 65, 97, 126, 0, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 61, 77, 109, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 61, 69, 101, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 61, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 44, 61, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 126, 0, 41, 42, 57, 58, 64, 65, 90, 92, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 61, 82, 83, 114, 115, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 61, 73, 105, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 61, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 44, 61, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 126, 0, 41, 42, 57, 58, 64, 65, 90, 92, 94, 95, 122, 123, 65535, 9, 13, 34, 92, 127, 0, 31, 32, 255, 256, 65535, 9, 13, 34, 92, 127, 0, 31, 32, 255, 256, 65535, 10, 13, 34, 0, 127, 128, 65535, 9, 13, 32, 34, 44, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 65, 67, 78, 79, 81, 82, 85, 92, 97, 99, 110, 111, 113, 114, 117, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 34, 58, 92, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 58, 92, 93, 127, 0, 31, 32, 255, 256, 65535, 9, 13, 34, 58, 92, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 46, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 46, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 46, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 92, 93, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 92, 93, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 92, 93, 127, 0, 31, 32, 255, 256, 65535, 9, 13, 32, 34, 44, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 34, 46, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 46, 92, 127, 0, 31, 32, 255, 256, 65535, 9, 13, 34, 46, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 46, 92, 127, 0, 31, 32, 255, 256, 65535, 9, 13, 34, 46, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 46, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 58, 92, 93, 127, 0, 31, 32, 255, 256, 65535, 9, 13, 34, 92, 127, 0, 31, 32, 47, 48, 57, 58, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 46, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 46, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 46, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 46, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 46, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 46, 92, 127, 0, 31, 32, 255, 256, 65535, 9, 13, 34, 58, 92, 127, 0, 31, 32, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 76, 92, 108, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 71, 92, 103, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 79, 92, 111, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 82, 92, 114, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 73, 92, 105, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 84, 92, 116, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 72, 92, 104, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 77, 92, 109, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 78, 92, 110, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 79, 92, 111, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 78, 92, 110, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 67, 92, 99, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 69, 92, 101, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 67, 79, 92, 99, 111, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 46, 48, 57, 58, 64, 65, 90, 93, 94, 95, 96, 97, 102, 103, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 92, 126, 127, 0, 31, 35, 41, 42, 46, 48, 57, 58, 64, 65, 90, 91, 94, 95, 96, 97, 102, 103, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 92, 126, 127, 0, 31, 35, 41, 42, 46, 48, 57, 58, 64, 65, 90, 91, 94, 95, 96, 97, 102, 103, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 92, 126, 127, 0, 31, 35, 41, 42, 46, 48, 57, 58, 64, 65, 90, 91, 94, 95, 96, 97, 102, 103, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 92, 126, 127, 0, 31, 35, 41, 42, 46, 48, 57, 58, 64, 65, 90, 91, 94, 95, 96, 97, 102, 103, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 92, 126, 127, 0, 31, 35, 41, 42, 46, 48, 57, 58, 64, 65, 90, 91, 94, 95, 96, 97, 102, 103, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 92, 126, 127, 0, 31, 35, 41, 42, 46, 48, 57, 58, 64, 65, 90, 91, 94, 95, 96, 97, 102, 103, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 92, 126, 127, 0, 31, 35, 41, 42, 46, 48, 57, 58, 64, 65, 90, 91, 94, 95, 96, 97, 102, 103, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 78, 92, 110, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 67, 92, 99, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 69, 92, 101, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 80, 92, 112, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 65, 92, 97, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 81, 92, 113, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 85, 92, 117, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 69, 92, 101, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 79, 92, 111, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 80, 92, 112, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 69, 92, 101, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 65, 83, 92, 97, 115, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 76, 92, 108, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 77, 92, 109, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 80, 92, 112, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 79, 92, 111, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 78, 92, 110, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 83, 92, 115, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 69, 92, 101, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 82, 83, 92, 114, 115, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 73, 92, 105, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 69, 92, 101, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 82, 92, 114, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 78, 92, 110, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 65, 92, 97, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 77, 92, 109, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 69, 92, 101, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 13, 73, 105, 0, 65535, 13, 71, 103, 0, 65535, 13, 69, 101, 0, 65535, 13, 83, 115, 0, 65535, 13, 84, 116, 0, 65535, 9, 13, 32, 0, 65535, 10, 13, 0, 65535, 9, 13, 32, 0, 65535, 82, 114, 79, 111, 88, 120, 89, 121, 45, 65, 97, 0]; _tsip_machine_parser_header_Authorization_single_lengths = [0, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 7, 1, 1, 7, 3, 3, 3, 3, 3, 23, 10, 5, 23, 12, 11, 9, 4, 5, 4, 2, 2, 3, 3, 3, 3, 2, 4, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 4, 4, 3, 3, 3, 3, 3, 1, 4, 4, 4, 1, 2, 2, 2, 2, 12, 12, 12, 12, 12, 12, 12, 10, 5, 11, 9, 12, 12, 12, 12, 12, 10, 5, 11, 5, 4, 2, 14, 10, 5, 11, 9, 9, 9, 9, 9, 9, 9, 4, 12, 12, 12, 10, 5, 11, 5, 4, 2, 12, 12, 12, 12, 12, 10, 5, 11, 5, 4, 2, 12, 12, 10, 5, 11, 9, 12, 14, 12, 12, 10, 5, 11, 5, 4, 2, 12, 12, 12, 12, 12, 10, 5, 11, 5, 4, 2, 14, 12, 10, 5, 11, 5, 2, 5, 3, 7, 26, 13, 8, 13, 12, 7, 6, 7, 7, 7, 7, 6, 8, 5, 6, 5, 6, 5, 6, 6, 6, 6, 6, 6, 6, 8, 8, 7, 7, 7, 7, 7, 5, 8, 8, 8, 5, 6, 6, 6, 6, 15, 15, 15, 15, 15, 15, 15, 15, 13, 8, 13, 12, 15, 15, 15, 15, 15, 13, 8, 13, 7, 7, 26, 13, 8, 13, 12, 7, 6, 7, 7, 7, 7, 6, 8, 5, 6, 5, 6, 5, 6, 6, 6, 6, 6, 6, 6, 8, 8, 7, 7, 7, 7, 7, 5, 8, 8, 8, 5, 6, 6, 6, 6, 15, 15, 15, 15, 15, 15, 15, 15, 13, 8, 13, 12, 15, 15, 15, 15, 15, 13, 8, 13, 7, 17, 13, 8, 13, 12, 12, 12, 12, 12, 12, 12, 7, 15, 15, 15, 13, 8, 13, 7, 7, 26, 13, 8, 13, 12, 7, 6, 7, 7, 7, 7, 6, 8, 5, 6, 5, 6, 5, 6, 6, 6, 7, 6, 6, 6, 6, 8, 8, 7, 7, 7, 7, 7, 5, 8, 8, 8, 5, 6, 6, 6, 6, 15, 15, 15, 15, 15, 15, 15, 15, 13, 8, 13, 12, 15, 15, 15, 15, 15, 13, 8, 13, 7, 17, 13, 8, 13, 12, 12, 12, 12, 12, 12, 12, 7, 15, 15, 15, 13, 8, 13, 7, 15, 15, 15, 15, 15, 13, 8, 13, 7, 7, 26, 13, 8, 13, 12, 7, 6, 7, 7, 7, 7, 6, 8, 5, 6, 5, 6, 5, 6, 6, 6, 7, 6, 6, 6, 6, 8, 8, 7, 7, 7, 7, 7, 5, 8, 8, 8, 5, 6, 6, 6, 6, 15, 15, 15, 15, 15, 15, 15, 15, 13, 8, 13, 12, 15, 15, 15, 15, 15, 13, 8, 13, 7, 17, 13, 8, 13, 12, 12, 12, 12, 12, 12, 12, 7, 15, 15, 15, 13, 8, 13, 7, 15, 15, 15, 15, 15, 13, 8, 13, 7, 15, 15, 13, 8, 13, 12, 15, 17, 15, 15, 13, 8, 13, 7, 7, 26, 13, 8, 13, 12, 7, 6, 7, 7, 7, 7, 6, 8, 5, 6, 5, 6, 5, 6, 6, 6, 7, 6, 6, 6, 6, 8, 8, 7, 7, 7, 7, 7, 5, 8, 8, 8, 5, 6, 6, 6, 6, 15, 15, 15, 15, 15, 15, 15, 15, 13, 8, 13, 12, 15, 15, 15, 15, 15, 13, 8, 13, 7, 17, 13, 8, 13, 12, 12, 12, 12, 12, 12, 12, 7, 15, 15, 15, 13, 8, 13, 7, 15, 15, 15, 15, 15, 13, 8, 13, 7, 15, 15, 13, 8, 13, 12, 15, 17, 15, 15, 13, 8, 13, 7, 15, 15, 15, 15, 15, 13, 8, 13, 7, 7, 26, 13, 8, 13, 12, 7, 6, 7, 7, 7, 7, 6, 8, 5, 6, 5, 6, 5, 6, 6, 6, 7, 6, 6, 6, 6, 8, 8, 7, 7, 7, 7, 7, 5, 8, 8, 8, 5, 6, 6, 6, 6, 15, 15, 15, 15, 15, 15, 15, 15, 13, 8, 13, 12, 15, 15, 15, 15, 15, 13, 8, 13, 7, 17, 13, 8, 13, 12, 12, 12, 12, 12, 12, 12, 7, 15, 15, 15, 13, 8, 13, 7, 15, 15, 15, 15, 15, 13, 8, 13, 7, 15, 15, 13, 8, 13, 12, 15, 17, 15, 15, 13, 8, 13, 7, 15, 15, 15, 15, 15, 13, 8, 13, 7, 17, 15, 13, 8, 13, 7, 7, 26, 13, 8, 13, 12, 6, 7, 7, 7, 7, 6, 8, 5, 6, 5, 6, 5, 6, 6, 6, 7, 6, 6, 6, 6, 8, 8, 7, 7, 7, 7, 7, 5, 8, 8, 8, 5, 6, 6, 6, 6, 15, 15, 15, 15, 15, 15, 15, 15, 13, 8, 13, 12, 15, 15, 15, 15, 15, 13, 8, 13, 17, 13, 8, 13, 12, 12, 12, 12, 12, 12, 12, 7, 15, 15, 15, 13, 8, 13, 15, 15, 15, 15, 15, 13, 8, 13, 15, 15, 13, 8, 13, 12, 15, 17, 15, 15, 13, 8, 13, 15, 15, 15, 15, 15, 13, 8, 13, 17, 15, 13, 8, 13, 15, 15, 15, 15, 15, 15, 13, 8, 13, 7, 5, 4, 2, 26, 13, 8, 13, 12, 7, 6, 7, 7, 7, 7, 6, 8, 5, 6, 5, 6, 5, 6, 6, 6, 7, 6, 6, 6, 6, 8, 8, 7, 7, 7, 7, 7, 5, 8, 8, 8, 5, 6, 6, 6, 6, 15, 15, 15, 15, 15, 15, 15, 15, 13, 8, 13, 12, 15, 15, 15, 15, 15, 13, 8, 13, 7, 17, 13, 8, 13, 12, 12, 12, 12, 12, 12, 12, 7, 15, 15, 15, 13, 8, 13, 7, 15, 15, 15, 15, 15, 13, 8, 13, 7, 15, 15, 13, 8, 13, 12, 15, 17, 15, 15, 13, 8, 13, 7, 15, 15, 15, 15, 15, 13, 8, 13, 7, 17, 15, 13, 8, 13, 7, 15, 15, 15, 15, 15, 15, 13, 8, 13, 7, 15, 15, 15, 15, 15, 15, 13, 8, 13, 7, 17, 15, 13, 8, 13, 7, 15, 15, 15, 15, 15, 15, 13, 8, 13, 7, 15, 15, 15, 15, 15, 13, 8, 13, 7, 17, 15, 13, 8, 13, 7, 15, 15, 15, 15, 15, 15, 13, 8, 13, 7, 15, 15, 13, 8, 13, 12, 15, 17, 15, 15, 13, 8, 13, 7, 15, 15, 15, 15, 15, 13, 8, 13, 7, 17, 15, 13, 8, 13, 7, 15, 15, 15, 15, 15, 15, 13, 8, 13, 7, 15, 15, 15, 15, 15, 13, 8, 13, 7, 15, 15, 13, 8, 13, 12, 15, 17, 15, 15, 13, 8, 13, 7, 15, 15, 15, 15, 15, 13, 8, 13, 7, 17, 15, 13, 8, 13, 7, 15, 15, 15, 15, 15, 15, 13, 8, 13, 7, 17, 13, 8, 13, 12, 12, 12, 12, 12, 12, 12, 7, 15, 15, 15, 13, 8, 13, 15, 15, 15, 15, 15, 13, 8, 13, 15, 15, 13, 8, 13, 12, 15, 17, 15, 15, 13, 8, 13, 15, 15, 15, 15, 15, 13, 8, 13, 17, 15, 13, 8, 13, 7, 15, 15, 15, 15, 15, 15, 13, 8, 13, 12, 12, 12, 12, 12, 12, 10, 5, 11, 14, 12, 10, 5, 11, 5, 5, 3, 7, 26, 13, 8, 13, 12, 6, 7, 7, 7, 7, 6, 8, 5, 6, 5, 6, 5, 6, 6, 6, 7, 6, 6, 6, 6, 8, 8, 7, 7, 7, 7, 7, 5, 8, 8, 8, 5, 6, 6, 6, 6, 15, 15, 15, 15, 15, 15, 15, 15, 13, 8, 13, 12, 15, 15, 15, 15, 15, 13, 8, 13, 17, 13, 8, 13, 12, 12, 12, 12, 12, 12, 12, 7, 15, 15, 15, 13, 8, 13, 15, 15, 15, 15, 15, 13, 8, 13, 15, 15, 13, 8, 13, 12, 15, 17, 15, 15, 13, 8, 13, 15, 15, 15, 15, 15, 13, 8, 13, 17, 15, 13, 8, 13, 7, 15, 15, 15, 15, 15, 15, 13, 8, 13, 3, 3, 3, 3, 3, 3, 2, 3, 2, 2, 2, 2, 1, 2, 0]; _tsip_machine_parser_header_Authorization_range_lengths = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 7, 7, 1, 7, 7, 7, 7, 1, 3, 1, 2, 7, 7, 7, 7, 1, 7, 7, 3, 3, 3, 3, 3, 3, 3, 1, 3, 1, 3, 1, 7, 7, 7, 7, 7, 7, 1, 7, 7, 7, 7, 3, 3, 3, 1, 1, 7, 7, 7, 7, 7, 7, 7, 7, 1, 7, 7, 7, 7, 7, 7, 7, 7, 1, 7, 3, 1, 2, 7, 7, 1, 10, 10, 10, 10, 10, 10, 10, 10, 1, 7, 7, 7, 7, 1, 7, 3, 1, 2, 7, 7, 7, 7, 7, 7, 1, 7, 3, 1, 2, 7, 7, 7, 1, 7, 7, 7, 7, 7, 7, 7, 1, 7, 3, 1, 2, 7, 7, 7, 7, 7, 7, 1, 7, 3, 1, 2, 7, 7, 7, 1, 7, 3, 1, 3, 2, 3, 9, 9, 3, 9, 9, 3, 9, 9, 9, 9, 3, 9, 9, 5, 5, 5, 5, 5, 5, 5, 3, 5, 3, 5, 3, 9, 9, 9, 9, 9, 9, 3, 9, 9, 9, 9, 5, 5, 5, 3, 3, 9, 9, 9, 9, 9, 9, 9, 9, 9, 3, 9, 9, 9, 9, 9, 9, 9, 9, 3, 9, 3, 3, 9, 9, 3, 9, 9, 3, 9, 9, 9, 9, 3, 9, 9, 5, 5, 5, 5, 5, 5, 5, 3, 5, 3, 5, 3, 9, 9, 9, 9, 9, 9, 3, 9, 9, 9, 9, 5, 5, 5, 3, 3, 9, 9, 9, 9, 9, 9, 9, 9, 9, 3, 9, 9, 9, 9, 9, 9, 9, 9, 3, 9, 3, 9, 9, 3, 12, 12, 12, 12, 12, 12, 12, 12, 3, 9, 9, 9, 9, 3, 9, 3, 3, 9, 9, 3, 9, 9, 3, 9, 9, 9, 9, 3, 9, 9, 5, 5, 5, 5, 5, 5, 5, 3, 3, 5, 3, 5, 3, 9, 9, 9, 9, 9, 9, 3, 9, 9, 9, 9, 5, 5, 5, 3, 3, 9, 9, 9, 9, 9, 9, 9, 9, 9, 3, 9, 9, 9, 9, 9, 9, 9, 9, 3, 9, 3, 9, 9, 3, 12, 12, 12, 12, 12, 12, 12, 12, 3, 9, 9, 9, 9, 3, 9, 3, 9, 9, 9, 9, 9, 9, 3, 9, 3, 3, 9, 9, 3, 9, 9, 3, 9, 9, 9, 9, 3, 9, 9, 5, 5, 5, 5, 5, 5, 5, 3, 3, 5, 3, 5, 3, 9, 9, 9, 9, 9, 9, 3, 9, 9, 9, 9, 5, 5, 5, 3, 3, 9, 9, 9, 9, 9, 9, 9, 9, 9, 3, 9, 9, 9, 9, 9, 9, 9, 9, 3, 9, 3, 9, 9, 3, 12, 12, 12, 12, 12, 12, 12, 12, 3, 9, 9, 9, 9, 3, 9, 3, 9, 9, 9, 9, 9, 9, 3, 9, 3, 9, 9, 9, 3, 9, 9, 9, 9, 9, 9, 9, 3, 9, 3, 3, 9, 9, 3, 9, 9, 3, 9, 9, 9, 9, 3, 9, 9, 5, 5, 5, 5, 5, 5, 5, 3, 3, 5, 3, 5, 3, 9, 9, 9, 9, 9, 9, 3, 9, 9, 9, 9, 5, 5, 5, 3, 3, 9, 9, 9, 9, 9, 9, 9, 9, 9, 3, 9, 9, 9, 9, 9, 9, 9, 9, 3, 9, 3, 9, 9, 3, 12, 12, 12, 12, 12, 12, 12, 12, 3, 9, 9, 9, 9, 3, 9, 3, 9, 9, 9, 9, 9, 9, 3, 9, 3, 9, 9, 9, 3, 9, 9, 9, 9, 9, 9, 9, 3, 9, 3, 9, 9, 9, 9, 9, 9, 3, 9, 3, 3, 9, 9, 3, 9, 9, 3, 9, 9, 9, 9, 3, 9, 9, 5, 5, 5, 5, 5, 5, 5, 3, 3, 5, 3, 5, 3, 9, 9, 9, 9, 9, 9, 3, 9, 9, 9, 9, 5, 5, 5, 3, 3, 9, 9, 9, 9, 9, 9, 9, 9, 9, 3, 9, 9, 9, 9, 9, 9, 9, 9, 3, 9, 3, 9, 9, 3, 12, 12, 12, 12, 12, 12, 12, 12, 3, 9, 9, 9, 9, 3, 9, 3, 9, 9, 9, 9, 9, 9, 3, 9, 3, 9, 9, 9, 3, 9, 9, 9, 9, 9, 9, 9, 3, 9, 3, 9, 9, 9, 9, 9, 9, 3, 9, 3, 9, 9, 9, 3, 9, 3, 3, 9, 9, 3, 9, 9, 9, 9, 9, 9, 3, 9, 9, 5, 5, 5, 5, 5, 5, 5, 3, 3, 5, 3, 5, 3, 9, 9, 9, 9, 9, 9, 3, 9, 9, 9, 9, 5, 5, 5, 3, 3, 9, 9, 9, 9, 9, 9, 9, 9, 9, 3, 9, 9, 9, 9, 9, 9, 9, 9, 3, 9, 9, 9, 3, 12, 12, 12, 12, 12, 12, 12, 12, 3, 9, 9, 9, 9, 3, 9, 9, 9, 9, 9, 9, 9, 3, 9, 9, 9, 9, 3, 9, 9, 9, 9, 9, 9, 9, 3, 9, 9, 9, 9, 9, 9, 9, 3, 9, 9, 9, 9, 3, 9, 9, 9, 9, 9, 9, 9, 9, 3, 9, 3, 3, 1, 2, 9, 9, 3, 9, 9, 3, 9, 9, 9, 9, 3, 9, 9, 5, 5, 5, 5, 5, 5, 5, 3, 3, 5, 3, 5, 3, 9, 9, 9, 9, 9, 9, 3, 9, 9, 9, 9, 5, 5, 5, 3, 3, 9, 9, 9, 9, 9, 9, 9, 9, 9, 3, 9, 9, 9, 9, 9, 9, 9, 9, 3, 9, 3, 9, 9, 3, 12, 12, 12, 12, 12, 12, 12, 12, 3, 9, 9, 9, 9, 3, 9, 3, 9, 9, 9, 9, 9, 9, 3, 9, 3, 9, 9, 9, 3, 9, 9, 9, 9, 9, 9, 9, 3, 9, 3, 9, 9, 9, 9, 9, 9, 3, 9, 3, 9, 9, 9, 3, 9, 3, 9, 9, 9, 9, 9, 9, 9, 3, 9, 3, 9, 9, 9, 9, 9, 9, 9, 3, 9, 3, 9, 9, 9, 3, 9, 3, 9, 9, 9, 9, 9, 9, 9, 3, 9, 3, 9, 9, 9, 9, 9, 9, 3, 9, 3, 9, 9, 9, 3, 9, 3, 9, 9, 9, 9, 9, 9, 9, 3, 9, 3, 9, 9, 9, 3, 9, 9, 9, 9, 9, 9, 9, 3, 9, 3, 9, 9, 9, 9, 9, 9, 3, 9, 3, 9, 9, 9, 3, 9, 3, 9, 9, 9, 9, 9, 9, 9, 3, 9, 3, 9, 9, 9, 9, 9, 9, 3, 9, 3, 9, 9, 9, 3, 9, 9, 9, 9, 9, 9, 9, 3, 9, 3, 9, 9, 9, 9, 9, 9, 3, 9, 3, 9, 9, 9, 3, 9, 3, 9, 9, 9, 9, 9, 9, 9, 3, 9, 3, 9, 9, 3, 12, 12, 12, 12, 12, 12, 12, 12, 3, 9, 9, 9, 9, 3, 9, 9, 9, 9, 9, 9, 9, 3, 9, 9, 9, 9, 3, 9, 9, 9, 9, 9, 9, 9, 3, 9, 9, 9, 9, 9, 9, 9, 3, 9, 9, 9, 9, 3, 9, 3, 9, 9, 9, 9, 9, 9, 9, 3, 9, 7, 7, 7, 7, 7, 7, 7, 1, 7, 7, 7, 7, 1, 7, 3, 3, 2, 3, 9, 9, 3, 9, 9, 9, 9, 9, 9, 3, 9, 9, 5, 5, 5, 5, 5, 5, 5, 3, 3, 5, 3, 5, 3, 9, 9, 9, 9, 9, 9, 3, 9, 9, 9, 9, 5, 5, 5, 3, 3, 9, 9, 9, 9, 9, 9, 9, 9, 9, 3, 9, 9, 9, 9, 9, 9, 9, 9, 3, 9, 9, 9, 3, 12, 12, 12, 12, 12, 12, 12, 12, 3, 9, 9, 9, 9, 3, 9, 9, 9, 9, 9, 9, 9, 3, 9, 9, 9, 9, 3, 9, 9, 9, 9, 9, 9, 9, 3, 9, 9, 9, 9, 9, 9, 9, 3, 9, 9, 9, 9, 3, 9, 3, 9, 9, 9, 9, 9, 9, 9, 3, 9, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0]; _tsip_machine_parser_header_Authorization_index_offsets = [0, 0, 5, 8, 11, 14, 17, 20, 23, 26, 29, 32, 35, 38, 41, 45, 54, 57, 59, 68, 73, 78, 83, 88, 93, 124, 142, 149, 180, 200, 219, 236, 242, 251, 257, 262, 272, 283, 294, 305, 310, 320, 332, 337, 343, 348, 354, 359, 365, 371, 375, 381, 385, 391, 395, 407, 419, 430, 441, 452, 463, 468, 477, 489, 501, 513, 518, 524, 530, 534, 538, 558, 578, 598, 618, 638, 658, 678, 696, 703, 722, 739, 759, 779, 799, 819, 839, 857, 864, 883, 892, 898, 903, 925, 943, 950, 972, 992, 1012, 1032, 1052, 1072, 1092, 1112, 1118, 1138, 1158, 1178, 1196, 1203, 1222, 1231, 1237, 1242, 1262, 1282, 1302, 1322, 1342, 1360, 1367, 1386, 1395, 1401, 1406, 1426, 1446, 1464, 1471, 1490, 1507, 1527, 1549, 1569, 1589, 1607, 1614, 1633, 1642, 1648, 1653, 1673, 1693, 1713, 1733, 1753, 1771, 1778, 1797, 1806, 1812, 1817, 1839, 1859, 1877, 1884, 1903, 1912, 1916, 1925, 1931, 1942, 1978, 2001, 2013, 2036, 2058, 2069, 2085, 2102, 2119, 2136, 2147, 2163, 2181, 2192, 2204, 2215, 2227, 2238, 2250, 2262, 2272, 2284, 2294, 2306, 2316, 2334, 2352, 2369, 2386, 2403, 2420, 2431, 2446, 2464, 2482, 2500, 2511, 2523, 2535, 2545, 2555, 2580, 2605, 2630, 2655, 2680, 2705, 2730, 2755, 2778, 2790, 2813, 2835, 2860, 2885, 2910, 2935, 2960, 2983, 2995, 3018, 3029, 3040, 3076, 3099, 3111, 3134, 3156, 3167, 3183, 3200, 3217, 3234, 3245, 3261, 3279, 3290, 3302, 3313, 3325, 3336, 3348, 3360, 3370, 3382, 3392, 3404, 3414, 3432, 3450, 3467, 3484, 3501, 3518, 3529, 3544, 3562, 3580, 3598, 3609, 3621, 3633, 3643, 3653, 3678, 3703, 3728, 3753, 3778, 3803, 3828, 3853, 3876, 3888, 3911, 3933, 3958, 3983, 4008, 4033, 4058, 4081, 4093, 4116, 4127, 4154, 4177, 4189, 4215, 4240, 4265, 4290, 4315, 4340, 4365, 4390, 4401, 4426, 4451, 4476, 4499, 4511, 4534, 4545, 4556, 4592, 4615, 4627, 4650, 4672, 4683, 4699, 4716, 4733, 4750, 4761, 4777, 4795, 4806, 4818, 4829, 4841, 4852, 4864, 4876, 4886, 4897, 4909, 4919, 4931, 4941, 4959, 4977, 4994, 5011, 5028, 5045, 5056, 5071, 5089, 5107, 5125, 5136, 5148, 5160, 5170, 5180, 5205, 5230, 5255, 5280, 5305, 5330, 5355, 5380, 5403, 5415, 5438, 5460, 5485, 5510, 5535, 5560, 5585, 5608, 5620, 5643, 5654, 5681, 5704, 5716, 5742, 5767, 5792, 5817, 5842, 5867, 5892, 5917, 5928, 5953, 5978, 6003, 6026, 6038, 6061, 6072, 6097, 6122, 6147, 6172, 6197, 6220, 6232, 6255, 6266, 6277, 6313, 6336, 6348, 6371, 6393, 6404, 6420, 6437, 6454, 6471, 6482, 6498, 6516, 6527, 6539, 6550, 6562, 6573, 6585, 6597, 6607, 6618, 6630, 6640, 6652, 6662, 6680, 6698, 6715, 6732, 6749, 6766, 6777, 6792, 6810, 6828, 6846, 6857, 6869, 6881, 6891, 6901, 6926, 6951, 6976, 7001, 7026, 7051, 7076, 7101, 7124, 7136, 7159, 7181, 7206, 7231, 7256, 7281, 7306, 7329, 7341, 7364, 7375, 7402, 7425, 7437, 7463, 7488, 7513, 7538, 7563, 7588, 7613, 7638, 7649, 7674, 7699, 7724, 7747, 7759, 7782, 7793, 7818, 7843, 7868, 7893, 7918, 7941, 7953, 7976, 7987, 8012, 8037, 8060, 8072, 8095, 8117, 8142, 8169, 8194, 8219, 8242, 8254, 8277, 8288, 8299, 8335, 8358, 8370, 8393, 8415, 8426, 8442, 8459, 8476, 8493, 8504, 8520, 8538, 8549, 8561, 8572, 8584, 8595, 8607, 8619, 8629, 8640, 8652, 8662, 8674, 8684, 8702, 8720, 8737, 8754, 8771, 8788, 8799, 8814, 8832, 8850, 8868, 8879, 8891, 8903, 8913, 8923, 8948, 8973, 8998, 9023, 9048, 9073, 9098, 9123, 9146, 9158, 9181, 9203, 9228, 9253, 9278, 9303, 9328, 9351, 9363, 9386, 9397, 9424, 9447, 9459, 9485, 9510, 9535, 9560, 9585, 9610, 9635, 9660, 9671, 9696, 9721, 9746, 9769, 9781, 9804, 9815, 9840, 9865, 9890, 9915, 9940, 9963, 9975, 9998, 10009, 10034, 10059, 10082, 10094, 10117, 10139, 10164, 10191, 10216, 10241, 10264, 10276, 10299, 10310, 10335, 10360, 10385, 10410, 10435, 10458, 10470, 10493, 10504, 10515, 10551, 10574, 10586, 10609, 10631, 10642, 10658, 10675, 10692, 10709, 10720, 10736, 10754, 10765, 10777, 10788, 10800, 10811, 10823, 10835, 10845, 10856, 10868, 10878, 10890, 10900, 10918, 10936, 10953, 10970, 10987, 11004, 11015, 11030, 11048, 11066, 11084, 11095, 11107, 11119, 11129, 11139, 11164, 11189, 11214, 11239, 11264, 11289, 11314, 11339, 11362, 11374, 11397, 11419, 11444, 11469, 11494, 11519, 11544, 11567, 11579, 11602, 11613, 11640, 11663, 11675, 11701, 11726, 11751, 11776, 11801, 11826, 11851, 11876, 11887, 11912, 11937, 11962, 11985, 11997, 12020, 12031, 12056, 12081, 12106, 12131, 12156, 12179, 12191, 12214, 12225, 12250, 12275, 12298, 12310, 12333, 12355, 12380, 12407, 12432, 12457, 12480, 12492, 12515, 12526, 12551, 12576, 12601, 12626, 12651, 12674, 12686, 12709, 12720, 12747, 12772, 12795, 12807, 12830, 12841, 12852, 12888, 12911, 12923, 12946, 12968, 12984, 13001, 13018, 13035, 13046, 13062, 13080, 13091, 13103, 13114, 13126, 13137, 13149, 13161, 13171, 13182, 13194, 13204, 13216, 13226, 13244, 13262, 13279, 13296, 13313, 13330, 13341, 13356, 13374, 13392, 13410, 13421, 13433, 13445, 13455, 13465, 13490, 13515, 13540, 13565, 13590, 13615, 13640, 13665, 13688, 13700, 13723, 13745, 13770, 13795, 13820, 13845, 13870, 13893, 13905, 13928, 13955, 13978, 13990, 14016, 14041, 14066, 14091, 14116, 14141, 14166, 14191, 14202, 14227, 14252, 14277, 14300, 14312, 14335, 14360, 14385, 14410, 14435, 14460, 14483, 14495, 14518, 14543, 14568, 14591, 14603, 14626, 14648, 14673, 14700, 14725, 14750, 14773, 14785, 14808, 14833, 14858, 14883, 14908, 14933, 14956, 14968, 14991, 15018, 15043, 15066, 15078, 15101, 15126, 15151, 15176, 15201, 15226, 15251, 15274, 15286, 15309, 15320, 15329, 15335, 15340, 15376, 15399, 15411, 15434, 15456, 15467, 15483, 15500, 15517, 15534, 15545, 15561, 15579, 15590, 15602, 15613, 15625, 15636, 15648, 15660, 15670, 15681, 15693, 15703, 15715, 15725, 15743, 15761, 15778, 15795, 15812, 15829, 15840, 15855, 15873, 15891, 15909, 15920, 15932, 15944, 15954, 15964, 15989, 16014, 16039, 16064, 16089, 16114, 16139, 16164, 16187, 16199, 16222, 16244, 16269, 16294, 16319, 16344, 16369, 16392, 16404, 16427, 16438, 16465, 16488, 16500, 16526, 16551, 16576, 16601, 16626, 16651, 16676, 16701, 16712, 16737, 16762, 16787, 16810, 16822, 16845, 16856, 16881, 16906, 16931, 16956, 16981, 17004, 17016, 17039, 17050, 17075, 17100, 17123, 17135, 17158, 17180, 17205, 17232, 17257, 17282, 17305, 17317, 17340, 17351, 17376, 17401, 17426, 17451, 17476, 17499, 17511, 17534, 17545, 17572, 17597, 17620, 17632, 17655, 17666, 17691, 17716, 17741, 17766, 17791, 17816, 17839, 17851, 17874, 17885, 17910, 17935, 17960, 17985, 18010, 18035, 18058, 18070, 18093, 18104, 18131, 18156, 18179, 18191, 18214, 18225, 18250, 18275, 18300, 18325, 18350, 18375, 18398, 18410, 18433, 18444, 18469, 18494, 18519, 18544, 18569, 18592, 18604, 18627, 18638, 18665, 18690, 18713, 18725, 18748, 18759, 18784, 18809, 18834, 18859, 18884, 18909, 18932, 18944, 18967, 18978, 19003, 19028, 19051, 19063, 19086, 19108, 19133, 19160, 19185, 19210, 19233, 19245, 19268, 19279, 19304, 19329, 19354, 19379, 19404, 19427, 19439, 19462, 19473, 19500, 19525, 19548, 19560, 19583, 19594, 19619, 19644, 19669, 19694, 19719, 19744, 19767, 19779, 19802, 19813, 19838, 19863, 19888, 19913, 19938, 19961, 19973, 19996, 20007, 20032, 20057, 20080, 20092, 20115, 20137, 20162, 20189, 20214, 20239, 20262, 20274, 20297, 20308, 20333, 20358, 20383, 20408, 20433, 20456, 20468, 20491, 20502, 20529, 20554, 20577, 20589, 20612, 20623, 20648, 20673, 20698, 20723, 20748, 20773, 20796, 20808, 20831, 20842, 20869, 20892, 20904, 20930, 20955, 20980, 21005, 21030, 21055, 21080, 21105, 21116, 21141, 21166, 21191, 21214, 21226, 21249, 21274, 21299, 21324, 21349, 21374, 21397, 21409, 21432, 21457, 21482, 21505, 21517, 21540, 21562, 21587, 21614, 21639, 21664, 21687, 21699, 21722, 21747, 21772, 21797, 21822, 21847, 21870, 21882, 21905, 21932, 21957, 21980, 21992, 22015, 22026, 22051, 22076, 22101, 22126, 22151, 22176, 22199, 22211, 22234, 22254, 22274, 22294, 22314, 22334, 22354, 22372, 22379, 22398, 22420, 22440, 22458, 22465, 22484, 22493, 22502, 22508, 22519, 22555, 22578, 22590, 22613, 22635, 22651, 22668, 22685, 22702, 22713, 22729, 22747, 22758, 22770, 22781, 22793, 22804, 22816, 22828, 22838, 22849, 22861, 22871, 22883, 22893, 22911, 22929, 22946, 22963, 22980, 22997, 23008, 23023, 23041, 23059, 23077, 23088, 23100, 23112, 23122, 23132, 23157, 23182, 23207, 23232, 23257, 23282, 23307, 23332, 23355, 23367, 23390, 23412, 23437, 23462, 23487, 23512, 23537, 23560, 23572, 23595, 23622, 23645, 23657, 23683, 23708, 23733, 23758, 23783, 23808, 23833, 23858, 23869, 23894, 23919, 23944, 23967, 23979, 24002, 24027, 24052, 24077, 24102, 24127, 24150, 24162, 24185, 24210, 24235, 24258, 24270, 24293, 24315, 24340, 24367, 24392, 24417, 24440, 24452, 24475, 24500, 24525, 24550, 24575, 24600, 24623, 24635, 24658, 24685, 24710, 24733, 24745, 24768, 24779, 24804, 24829, 24854, 24879, 24904, 24929, 24952, 24964, 24987, 24992, 24997, 25002, 25007, 25012, 25017, 25021, 25026, 25029, 25032, 25035, 25038, 25040, 25043]; _tsip_machine_parser_header_Authorization_indicies = [0, 2, 0, 2, 1, 3, 3, 1, 4, 4, 1, 5, 5, 1, 6, 6, 1, 7, 7, 1, 8, 8, 1, 9, 9, 1, 10, 10, 1, 11, 11, 1, 12, 12, 1, 13, 13, 1, 14, 14, 1, 14, 14, 15, 1, 17, 18, 17, 19, 20, 19, 20, 16, 1, 21, 16, 1, 22, 1, 17, 21, 17, 19, 20, 19, 20, 16, 1, 21, 23, 23, 16, 1, 21, 24, 24, 16, 1, 21, 25, 25, 16, 1, 21, 26, 26, 16, 1, 27, 21, 27, 16, 1, 28, 21, 28, 29, 29, 29, 16, 16, 30, 31, 32, 33, 34, 35, 36, 30, 31, 32, 33, 34, 35, 36, 29, 16, 29, 16, 29, 16, 29, 16, 1, 37, 38, 37, 39, 39, 39, 40, 16, 41, 39, 16, 39, 16, 39, 16, 39, 16, 1, 42, 21, 42, 43, 41, 16, 1, 43, 21, 43, 29, 29, 29, 16, 16, 30, 31, 32, 33, 34, 35, 44, 30, 31, 32, 33, 34, 35, 44, 29, 16, 29, 16, 29, 16, 29, 16, 1, 37, 38, 37, 39, 39, 39, 40, 16, 41, 45, 45, 39, 16, 39, 16, 39, 16, 39, 16, 1, 41, 21, 41, 46, 47, 46, 46, 16, 16, 48, 46, 16, 46, 16, 46, 16, 46, 16, 1, 49, 38, 49, 46, 46, 46, 40, 16, 46, 16, 46, 16, 46, 16, 46, 16, 1, 50, 21, 50, 43, 16, 1, 47, 21, 51, 52, 16, 16, 47, 16, 1, 49, 38, 49, 40, 16, 1, 16, 21, 47, 16, 1, 21, 54, 16, 53, 16, 53, 16, 53, 16, 1, 21, 56, 51, 16, 55, 16, 55, 16, 55, 16, 1, 21, 56, 51, 16, 57, 16, 57, 16, 57, 16, 1, 21, 56, 51, 16, 58, 16, 58, 16, 58, 16, 1, 21, 56, 51, 16, 1, 21, 60, 16, 59, 16, 53, 16, 53, 16, 1, 21, 61, 56, 51, 16, 62, 16, 55, 16, 55, 16, 1, 21, 16, 63, 16, 1, 21, 64, 16, 65, 16, 1, 21, 16, 66, 16, 1, 21, 67, 16, 68, 16, 1, 21, 16, 69, 16, 1, 21, 51, 16, 70, 16, 1, 21, 51, 16, 71, 16, 1, 21, 51, 16, 1, 21, 67, 16, 72, 16, 1, 21, 67, 16, 1, 21, 64, 16, 73, 16, 1, 21, 64, 16, 1, 21, 61, 56, 51, 16, 74, 16, 57, 16, 57, 16, 1, 21, 61, 56, 51, 16, 58, 16, 58, 16, 58, 16, 1, 21, 76, 51, 16, 75, 16, 75, 16, 75, 16, 1, 21, 78, 51, 16, 77, 16, 77, 16, 77, 16, 1, 21, 78, 51, 16, 79, 16, 79, 16, 79, 16, 1, 21, 78, 51, 16, 80, 16, 80, 16, 80, 16, 1, 21, 78, 51, 16, 1, 21, 16, 81, 16, 75, 16, 75, 16, 1, 21, 61, 78, 51, 16, 82, 16, 77, 16, 77, 16, 1, 21, 61, 78, 51, 16, 83, 16, 79, 16, 79, 16, 1, 21, 61, 78, 51, 16, 80, 16, 80, 16, 80, 16, 1, 21, 16, 84, 16, 1, 21, 61, 16, 85, 16, 1, 21, 61, 16, 86, 16, 1, 21, 61, 16, 1, 21, 60, 16, 1, 37, 38, 37, 39, 39, 39, 40, 16, 41, 87, 87, 39, 16, 39, 16, 39, 16, 39, 16, 1, 37, 38, 37, 39, 39, 39, 40, 16, 41, 88, 88, 39, 16, 39, 16, 39, 16, 39, 16, 1, 37, 38, 37, 39, 39, 39, 40, 16, 41, 89, 89, 39, 16, 39, 16, 39, 16, 39, 16, 1, 37, 38, 37, 39, 39, 39, 40, 16, 41, 90, 90, 39, 16, 39, 16, 39, 16, 39, 16, 1, 37, 38, 37, 39, 39, 39, 40, 16, 41, 91, 91, 39, 16, 39, 16, 39, 16, 39, 16, 1, 37, 38, 37, 39, 39, 39, 40, 16, 41, 92, 92, 39, 16, 39, 16, 39, 16, 39, 16, 1, 37, 38, 37, 39, 39, 39, 40, 16, 41, 93, 93, 39, 16, 39, 16, 39, 16, 39, 16, 1, 94, 38, 94, 39, 39, 39, 40, 16, 95, 39, 16, 39, 16, 39, 16, 39, 16, 1, 96, 21, 96, 43, 95, 16, 1, 95, 21, 95, 97, 47, 97, 97, 16, 16, 48, 97, 16, 97, 16, 97, 16, 97, 16, 1, 98, 99, 98, 100, 100, 100, 101, 16, 100, 16, 100, 16, 100, 16, 100, 16, 1, 37, 38, 37, 39, 39, 39, 40, 16, 41, 102, 102, 39, 16, 39, 16, 39, 16, 39, 16, 1, 37, 38, 37, 39, 39, 39, 40, 16, 41, 103, 103, 39, 16, 39, 16, 39, 16, 39, 16, 1, 37, 38, 37, 39, 39, 39, 40, 16, 41, 104, 104, 39, 16, 39, 16, 39, 16, 39, 16, 1, 37, 38, 37, 39, 39, 39, 40, 16, 41, 105, 105, 39, 16, 39, 16, 39, 16, 39, 16, 1, 37, 38, 37, 39, 39, 39, 40, 16, 41, 106, 106, 39, 16, 39, 16, 39, 16, 39, 16, 1, 107, 38, 107, 39, 39, 39, 40, 16, 108, 39, 16, 39, 16, 39, 16, 39, 16, 1, 109, 21, 109, 43, 108, 16, 1, 110, 21, 110, 46, 111, 46, 46, 16, 16, 48, 46, 16, 46, 16, 46, 16, 46, 16, 1, 112, 21, 113, 114, 16, 16, 112, 16, 1, 115, 116, 115, 117, 16, 1, 16, 21, 112, 16, 1, 37, 38, 37, 39, 39, 39, 40, 16, 41, 118, 119, 118, 119, 39, 16, 39, 16, 39, 16, 39, 16, 1, 120, 38, 120, 39, 39, 39, 40, 16, 121, 39, 16, 39, 16, 39, 16, 39, 16, 1, 122, 21, 122, 43, 121, 16, 1, 121, 21, 121, 46, 47, 46, 46, 16, 16, 48, 46, 16, 46, 123, 16, 46, 16, 46, 123, 46, 16, 1, 49, 38, 49, 46, 46, 46, 40, 16, 46, 16, 46, 124, 16, 46, 16, 46, 124, 46, 16, 1, 49, 38, 49, 46, 46, 46, 40, 16, 46, 16, 46, 125, 16, 46, 16, 46, 125, 46, 16, 1, 49, 38, 49, 46, 46, 46, 40, 16, 46, 16, 46, 126, 16, 46, 16, 46, 126, 46, 16, 1, 49, 38, 49, 46, 46, 46, 40, 16, 46, 16, 46, 127, 16, 46, 16, 46, 127, 46, 16, 1, 49, 38, 49, 46, 46, 46, 40, 16, 46, 16, 46, 128, 16, 46, 16, 46, 128, 46, 16, 1, 49, 38, 49, 46, 46, 46, 40, 16, 46, 16, 46, 129, 16, 46, 16, 46, 129, 46, 16, 1, 49, 38, 49, 46, 46, 46, 40, 16, 46, 16, 46, 130, 16, 46, 16, 46, 130, 46, 16, 1, 131, 132, 131, 133, 16, 1, 37, 38, 37, 39, 39, 39, 40, 16, 41, 134, 134, 39, 16, 39, 16, 39, 16, 39, 16, 1, 37, 38, 37, 39, 39, 39, 40, 16, 41, 135, 135, 39, 16, 39, 16, 39, 16, 39, 16, 1, 37, 38, 37, 39, 39, 39, 40, 16, 41, 136, 136, 39, 16, 39, 16, 39, 16, 39, 16, 1, 137, 38, 137, 39, 39, 39, 40, 16, 138, 39, 16, 39, 16, 39, 16, 39, 16, 1, 139, 21, 139, 43, 138, 16, 1, 140, 21, 140, 46, 141, 46, 46, 16, 16, 48, 46, 16, 46, 16, 46, 16, 46, 16, 1, 142, 21, 143, 144, 16, 16, 142, 16, 1, 145, 146, 145, 147, 16, 1, 16, 21, 142, 16, 1, 37, 38, 37, 39, 39, 39, 40, 16, 41, 148, 148, 39, 16, 39, 16, 39, 16, 39, 16, 1, 37, 38, 37, 39, 39, 39, 40, 16, 41, 149, 149, 39, 16, 39, 16, 39, 16, 39, 16, 1, 37, 38, 37, 39, 39, 39, 40, 16, 41, 150, 150, 39, 16, 39, 16, 39, 16, 39, 16, 1, 37, 38, 37, 39, 39, 39, 40, 16, 41, 151, 151, 39, 16, 39, 16, 39, 16, 39, 16, 1, 37, 38, 37, 39, 39, 39, 40, 16, 41, 152, 152, 39, 16, 39, 16, 39, 16, 39, 16, 1, 153, 38, 153, 39, 39, 39, 40, 16, 154, 39, 16, 39, 16, 39, 16, 39, 16, 1, 155, 21, 155, 43, 154, 16, 1, 156, 21, 156, 46, 157, 46, 46, 16, 16, 48, 46, 16, 46, 16, 46, 16, 46, 16, 1, 158, 21, 159, 160, 16, 16, 158, 16, 1, 161, 162, 161, 163, 16, 1, 16, 21, 158, 16, 1, 37, 38, 37, 39, 39, 39, 40, 16, 41, 164, 164, 39, 16, 39, 16, 39, 16, 39, 16, 1, 37, 38, 37, 39, 39, 39, 40, 16, 41, 165, 165, 39, 16, 39, 16, 39, 16, 39, 16, 1, 166, 38, 166, 39, 39, 39, 40, 16, 167, 39, 16, 39, 16, 39, 16, 39, 16, 1, 168, 21, 168, 43, 167, 16, 1, 167, 21, 167, 169, 47, 169, 169, 16, 16, 48, 169, 16, 169, 16, 169, 16, 169, 16, 1, 170, 171, 170, 172, 172, 172, 173, 16, 172, 16, 172, 16, 172, 16, 172, 16, 1, 37, 38, 37, 39, 39, 39, 40, 16, 41, 174, 174, 39, 16, 39, 16, 39, 16, 39, 16, 1, 37, 38, 37, 39, 39, 39, 40, 16, 41, 175, 176, 175, 176, 39, 16, 39, 16, 39, 16, 39, 16, 1, 37, 38, 37, 39, 39, 39, 40, 16, 41, 177, 177, 39, 16, 39, 16, 39, 16, 39, 16, 1, 37, 38, 37, 39, 39, 39, 40, 16, 41, 178, 178, 39, 16, 39, 16, 39, 16, 39, 16, 1, 179, 38, 179, 39, 39, 39, 40, 16, 180, 39, 16, 39, 16, 39, 16, 39, 16, 1, 181, 21, 181, 43, 180, 16, 1, 182, 21, 182, 46, 183, 46, 46, 16, 16, 48, 46, 16, 46, 16, 46, 16, 46, 16, 1, 184, 21, 185, 186, 16, 16, 184, 16, 1, 187, 188, 187, 189, 16, 1, 16, 21, 184, 16, 1, 37, 38, 37, 39, 39, 39, 40, 16, 41, 190, 190, 39, 16, 39, 16, 39, 16, 39, 16, 1, 37, 38, 37, 39, 39, 39, 40, 16, 41, 191, 191, 39, 16, 39, 16, 39, 16, 39, 16, 1, 37, 38, 37, 39, 39, 39, 40, 16, 41, 192, 192, 39, 16, 39, 16, 39, 16, 39, 16, 1, 37, 38, 37, 39, 39, 39, 40, 16, 41, 193, 193, 39, 16, 39, 16, 39, 16, 39, 16, 1, 37, 38, 37, 39, 39, 39, 40, 16, 41, 194, 194, 39, 16, 39, 16, 39, 16, 39, 16, 1, 195, 38, 195, 39, 39, 39, 40, 16, 196, 39, 16, 39, 16, 39, 16, 39, 16, 1, 197, 21, 197, 43, 196, 16, 1, 198, 21, 198, 46, 199, 46, 46, 16, 16, 48, 46, 16, 46, 16, 46, 16, 46, 16, 1, 200, 21, 201, 202, 16, 16, 200, 16, 1, 203, 204, 203, 205, 16, 1, 16, 21, 200, 16, 1, 37, 38, 37, 39, 39, 39, 40, 16, 41, 206, 207, 206, 207, 39, 16, 39, 16, 39, 16, 39, 16, 1, 37, 38, 37, 39, 39, 39, 40, 16, 41, 208, 208, 39, 16, 39, 16, 39, 16, 39, 16, 1, 209, 38, 209, 39, 39, 39, 40, 16, 210, 39, 16, 39, 16, 39, 16, 39, 16, 1, 211, 21, 211, 43, 210, 16, 1, 210, 21, 210, 46, 212, 46, 46, 16, 16, 48, 46, 16, 46, 16, 46, 16, 46, 16, 1, 214, 21, 215, 216, 213, 213, 214, 213, 1, 21, 218, 217, 1, 219, 21, 218, 220, 217, 217, 219, 217, 1, 217, 21, 221, 219, 217, 1, 222, 21, 222, 51, 223, 52, 16, 16, 47, 16, 1, 223, 21, 223, 224, 51, 224, 224, 47, 47, 225, 226, 227, 228, 229, 230, 231, 52, 225, 226, 227, 228, 229, 230, 231, 224, 16, 16, 47, 224, 47, 224, 47, 224, 47, 16, 1, 232, 38, 232, 233, 51, 233, 233, 234, 47, 235, 52, 233, 16, 16, 47, 233, 47, 233, 47, 233, 47, 16, 1, 236, 21, 236, 51, 223, 235, 52, 16, 16, 47, 16, 1, 235, 21, 235, 237, 238, 237, 237, 47, 47, 239, 52, 237, 16, 16, 47, 237, 47, 237, 47, 237, 47, 16, 1, 240, 38, 240, 237, 51, 237, 237, 234, 47, 52, 237, 16, 16, 47, 237, 47, 237, 47, 237, 47, 16, 1, 240, 38, 240, 51, 234, 52, 16, 16, 47, 16, 1, 47, 21, 51, 242, 52, 16, 16, 47, 241, 47, 241, 47, 241, 47, 16, 1, 47, 21, 51, 244, 52, 238, 16, 16, 47, 243, 47, 243, 47, 243, 47, 16, 1, 47, 21, 51, 244, 52, 238, 16, 16, 47, 245, 47, 245, 47, 245, 47, 16, 1, 47, 21, 51, 244, 52, 238, 16, 16, 47, 246, 47, 246, 47, 246, 47, 16, 1, 47, 21, 51, 244, 52, 238, 16, 16, 47, 16, 1, 47, 21, 51, 248, 52, 16, 16, 47, 247, 47, 241, 47, 241, 47, 16, 1, 47, 21, 51, 249, 244, 52, 238, 16, 16, 47, 250, 47, 243, 47, 243, 47, 16, 1, 47, 21, 51, 52, 16, 16, 47, 251, 47, 16, 1, 47, 21, 51, 252, 52, 16, 16, 47, 253, 47, 16, 1, 47, 21, 51, 52, 16, 16, 47, 254, 47, 16, 1, 47, 21, 51, 255, 52, 16, 16, 47, 256, 47, 16, 1, 47, 21, 51, 52, 16, 16, 47, 257, 47, 16, 1, 47, 21, 51, 52, 238, 16, 16, 47, 258, 47, 16, 1, 47, 21, 51, 52, 238, 16, 16, 47, 259, 47, 16, 1, 47, 21, 51, 52, 238, 16, 16, 47, 16, 1, 47, 21, 51, 255, 52, 16, 16, 47, 260, 47, 16, 1, 47, 21, 51, 255, 52, 16, 16, 47, 16, 1, 47, 21, 51, 252, 52, 16, 16, 47, 261, 47, 16, 1, 47, 21, 51, 252, 52, 16, 16, 47, 16, 1, 47, 21, 51, 249, 244, 52, 238, 16, 16, 47, 262, 47, 245, 47, 245, 47, 16, 1, 47, 21, 51, 249, 244, 52, 238, 16, 16, 47, 246, 47, 246, 47, 246, 47, 16, 1, 47, 21, 51, 264, 52, 238, 16, 16, 47, 263, 47, 263, 47, 263, 47, 16, 1, 47, 21, 51, 266, 52, 238, 16, 16, 47, 265, 47, 265, 47, 265, 47, 16, 1, 47, 21, 51, 266, 52, 238, 16, 16, 47, 267, 47, 267, 47, 267, 47, 16, 1, 47, 21, 51, 266, 52, 238, 16, 16, 47, 268, 47, 268, 47, 268, 47, 16, 1, 47, 21, 51, 266, 52, 238, 16, 16, 47, 16, 1, 47, 21, 51, 52, 16, 16, 47, 269, 47, 263, 47, 263, 47, 16, 1, 47, 21, 51, 249, 266, 52, 238, 16, 16, 47, 270, 47, 265, 47, 265, 47, 16, 1, 47, 21, 51, 249, 266, 52, 238, 16, 16, 47, 271, 47, 267, 47, 267, 47, 16, 1, 47, 21, 51, 249, 266, 52, 238, 16, 16, 47, 268, 47, 268, 47, 268, 47, 16, 1, 47, 21, 51, 52, 16, 16, 47, 272, 47, 16, 1, 47, 21, 51, 249, 52, 16, 16, 47, 273, 47, 16, 1, 47, 21, 51, 249, 52, 16, 16, 47, 274, 47, 16, 1, 47, 21, 51, 249, 52, 16, 16, 47, 16, 1, 47, 21, 51, 248, 52, 16, 16, 47, 16, 1, 232, 38, 232, 233, 51, 233, 233, 234, 47, 235, 275, 52, 275, 233, 16, 16, 47, 233, 47, 233, 47, 233, 47, 16, 1, 232, 38, 232, 233, 51, 233, 233, 234, 47, 235, 276, 52, 276, 233, 16, 16, 47, 233, 47, 233, 47, 233, 47, 16, 1, 232, 38, 232, 233, 51, 233, 233, 234, 47, 235, 277, 52, 277, 233, 16, 16, 47, 233, 47, 233, 47, 233, 47, 16, 1, 232, 38, 232, 233, 51, 233, 233, 234, 47, 235, 278, 52, 278, 233, 16, 16, 47, 233, 47, 233, 47, 233, 47, 16, 1, 232, 38, 232, 233, 51, 233, 233, 234, 47, 235, 279, 52, 279, 233, 16, 16, 47, 233, 47, 233, 47, 233, 47, 16, 1, 232, 38, 232, 233, 51, 233, 233, 234, 47, 235, 280, 52, 280, 233, 16, 16, 47, 233, 47, 233, 47, 233, 47, 16, 1, 232, 38, 232, 233, 51, 233, 233, 234, 47, 235, 281, 52, 281, 233, 16, 16, 47, 233, 47, 233, 47, 233, 47, 16, 1, 232, 38, 232, 233, 51, 233, 233, 234, 47, 235, 282, 52, 282, 233, 16, 16, 47, 233, 47, 233, 47, 233, 47, 16, 1, 283, 38, 283, 233, 51, 233, 233, 234, 47, 284, 52, 233, 16, 16, 47, 233, 47, 233, 47, 233, 47, 16, 1, 285, 21, 285, 51, 223, 284, 52, 16, 16, 47, 16, 1, 284, 21, 284, 286, 238, 286, 286, 47, 47, 239, 52, 286, 16, 16, 47, 286, 47, 286, 47, 286, 47, 16, 1, 287, 99, 287, 288, 51, 288, 288, 289, 47, 52, 288, 16, 16, 47, 288, 47, 288, 47, 288, 47, 16, 1, 232, 38, 232, 233, 51, 233, 233, 234, 47, 235, 290, 52, 290, 233, 16, 16, 47, 233, 47, 233, 47, 233, 47, 16, 1, 232, 38, 232, 233, 51, 233, 233, 234, 47, 235, 291, 52, 291, 233, 16, 16, 47, 233, 47, 233, 47, 233, 47, 16, 1, 232, 38, 232, 233, 51, 233, 233, 234, 47, 235, 292, 52, 292, 233, 16, 16, 47, 233, 47, 233, 47, 233, 47, 16, 1, 232, 38, 232, 233, 51, 233, 233, 234, 47, 235, 293, 52, 293, 233, 16, 16, 47, 233, 47, 233, 47, 233, 47, 16, 1, 232, 38, 232, 233, 51, 233, 233, 234, 47, 235, 294, 52, 294, 233, 16, 16, 47, 233, 47, 233, 47, 233, 47, 16, 1, 295, 38, 295, 233, 51, 233, 233, 234, 47, 296, 52, 233, 16, 16, 47, 233, 47, 233, 47, 233, 47, 16, 1, 297, 21, 297, 51, 223, 296, 52, 16, 16, 47, 16, 1, 298, 21, 298, 237, 299, 237, 237, 47, 47, 239, 52, 237, 16, 16, 47, 237, 47, 237, 47, 237, 47, 16, 1, 300, 38, 300, 113, 301, 114, 16, 16, 112, 16, 1, 302, 21, 302, 113, 303, 114, 16, 16, 112, 16, 1, 303, 21, 303, 304, 113, 304, 304, 112, 112, 305, 306, 307, 308, 309, 310, 311, 114, 305, 306, 307, 308, 309, 310, 311, 304, 16, 16, 112, 304, 112, 304, 112, 304, 112, 16, 1, 312, 38, 312, 313, 113, 313, 313, 301, 112, 314, 114, 313, 16, 16, 112, 313, 112, 313, 112, 313, 112, 16, 1, 315, 21, 315, 113, 303, 314, 114, 16, 16, 112, 16, 1, 314, 21, 314, 316, 317, 316, 316, 112, 112, 318, 114, 316, 16, 16, 112, 316, 112, 316, 112, 316, 112, 16, 1, 300, 38, 300, 316, 113, 316, 316, 301, 112, 114, 316, 16, 16, 112, 316, 112, 316, 112, 316, 112, 16, 1, 319, 116, 319, 51, 320, 52, 16, 16, 47, 16, 1, 112, 21, 113, 322, 114, 16, 16, 112, 321, 112, 321, 112, 321, 112, 16, 1, 112, 21, 113, 324, 114, 325, 16, 16, 112, 323, 112, 323, 112, 323, 112, 16, 1, 112, 21, 113, 324, 114, 325, 16, 16, 112, 326, 112, 326, 112, 326, 112, 16, 1, 112, 21, 113, 324, 114, 325, 16, 16, 112, 327, 112, 327, 112, 327, 112, 16, 1, 112, 21, 113, 324, 114, 325, 16, 16, 112, 16, 1, 112, 21, 113, 329, 114, 16, 16, 112, 328, 112, 321, 112, 321, 112, 16, 1, 112, 21, 113, 330, 324, 114, 325, 16, 16, 112, 331, 112, 323, 112, 323, 112, 16, 1, 112, 21, 113, 114, 16, 16, 112, 332, 112, 16, 1, 112, 21, 113, 333, 114, 16, 16, 112, 334, 112, 16, 1, 112, 21, 113, 114, 16, 16, 112, 335, 112, 16, 1, 112, 21, 113, 336, 114, 16, 16, 112, 337, 112, 16, 1, 112, 21, 113, 114, 16, 16, 112, 338, 112, 16, 1, 112, 21, 113, 114, 325, 16, 16, 112, 339, 112, 16, 1, 112, 21, 113, 114, 325, 16, 16, 112, 340, 112, 16, 1, 112, 21, 113, 114, 325, 16, 16, 112, 16, 1, 112, 21, 113, 336, 114, 16, 16, 112, 341, 112, 16, 1, 112, 21, 113, 336, 114, 16, 16, 112, 16, 1, 112, 21, 113, 333, 114, 16, 16, 112, 342, 112, 16, 1, 112, 21, 113, 333, 114, 16, 16, 112, 16, 1, 112, 21, 113, 330, 324, 114, 325, 16, 16, 112, 343, 112, 326, 112, 326, 112, 16, 1, 112, 21, 113, 330, 324, 114, 325, 16, 16, 112, 327, 112, 327, 112, 327, 112, 16, 1, 112, 21, 113, 345, 114, 325, 16, 16, 112, 344, 112, 344, 112, 344, 112, 16, 1, 112, 21, 113, 347, 114, 325, 16, 16, 112, 346, 112, 346, 112, 346, 112, 16, 1, 112, 21, 113, 347, 114, 325, 16, 16, 112, 348, 112, 348, 112, 348, 112, 16, 1, 112, 21, 113, 347, 114, 325, 16, 16, 112, 349, 112, 349, 112, 349, 112, 16, 1, 112, 21, 113, 347, 114, 325, 16, 16, 112, 16, 1, 112, 21, 113, 114, 16, 16, 112, 350, 112, 344, 112, 344, 112, 16, 1, 112, 21, 113, 330, 347, 114, 325, 16, 16, 112, 351, 112, 346, 112, 346, 112, 16, 1, 112, 21, 113, 330, 347, 114, 325, 16, 16, 112, 352, 112, 348, 112, 348, 112, 16, 1, 112, 21, 113, 330, 347, 114, 325, 16, 16, 112, 349, 112, 349, 112, 349, 112, 16, 1, 112, 21, 113, 114, 16, 16, 112, 353, 112, 16, 1, 112, 21, 113, 330, 114, 16, 16, 112, 354, 112, 16, 1, 112, 21, 113, 330, 114, 16, 16, 112, 355, 112, 16, 1, 112, 21, 113, 330, 114, 16, 16, 112, 16, 1, 112, 21, 113, 329, 114, 16, 16, 112, 16, 1, 312, 38, 312, 313, 113, 313, 313, 301, 112, 314, 356, 114, 356, 313, 16, 16, 112, 313, 112, 313, 112, 313, 112, 16, 1, 312, 38, 312, 313, 113, 313, 313, 301, 112, 314, 357, 114, 357, 313, 16, 16, 112, 313, 112, 313, 112, 313, 112, 16, 1, 312, 38, 312, 313, 113, 313, 313, 301, 112, 314, 358, 114, 358, 313, 16, 16, 112, 313, 112, 313, 112, 313, 112, 16, 1, 312, 38, 312, 313, 113, 313, 313, 301, 112, 314, 359, 114, 359, 313, 16, 16, 112, 313, 112, 313, 112, 313, 112, 16, 1, 312, 38, 312, 313, 113, 313, 313, 301, 112, 314, 360, 114, 360, 313, 16, 16, 112, 313, 112, 313, 112, 313, 112, 16, 1, 312, 38, 312, 313, 113, 313, 313, 301, 112, 314, 361, 114, 361, 313, 16, 16, 112, 313, 112, 313, 112, 313, 112, 16, 1, 312, 38, 312, 313, 113, 313, 313, 301, 112, 314, 362, 114, 362, 313, 16, 16, 112, 313, 112, 313, 112, 313, 112, 16, 1, 312, 38, 312, 313, 113, 313, 313, 301, 112, 314, 363, 114, 363, 313, 16, 16, 112, 313, 112, 313, 112, 313, 112, 16, 1, 364, 38, 364, 313, 113, 313, 313, 301, 112, 365, 114, 313, 16, 16, 112, 313, 112, 313, 112, 313, 112, 16, 1, 366, 21, 366, 113, 303, 365, 114, 16, 16, 112, 16, 1, 365, 21, 365, 367, 317, 367, 367, 112, 112, 318, 114, 367, 16, 16, 112, 367, 112, 367, 112, 367, 112, 16, 1, 368, 99, 368, 369, 113, 369, 369, 370, 112, 114, 369, 16, 16, 112, 369, 112, 369, 112, 369, 112, 16, 1, 312, 38, 312, 313, 113, 313, 313, 301, 112, 314, 371, 114, 371, 313, 16, 16, 112, 313, 112, 313, 112, 313, 112, 16, 1, 312, 38, 312, 313, 113, 313, 313, 301, 112, 314, 372, 114, 372, 313, 16, 16, 112, 313, 112, 313, 112, 313, 112, 16, 1, 312, 38, 312, 313, 113, 313, 313, 301, 112, 314, 373, 114, 373, 313, 16, 16, 112, 313, 112, 313, 112, 313, 112, 16, 1, 312, 38, 312, 313, 113, 313, 313, 301, 112, 314, 374, 114, 374, 313, 16, 16, 112, 313, 112, 313, 112, 313, 112, 16, 1, 312, 38, 312, 313, 113, 313, 313, 301, 112, 314, 375, 114, 375, 313, 16, 16, 112, 313, 112, 313, 112, 313, 112, 16, 1, 376, 38, 376, 313, 113, 313, 313, 301, 112, 377, 114, 313, 16, 16, 112, 313, 112, 313, 112, 313, 112, 16, 1, 378, 21, 378, 113, 303, 377, 114, 16, 16, 112, 16, 1, 379, 21, 379, 316, 380, 316, 316, 112, 112, 318, 114, 316, 16, 16, 112, 316, 112, 316, 112, 316, 112, 16, 1, 381, 116, 381, 113, 382, 114, 16, 16, 112, 16, 1, 312, 38, 312, 313, 113, 313, 313, 301, 112, 314, 383, 384, 114, 383, 384, 313, 16, 16, 112, 313, 112, 313, 112, 313, 112, 16, 1, 385, 38, 385, 313, 113, 313, 313, 301, 112, 386, 114, 313, 16, 16, 112, 313, 112, 313, 112, 313, 112, 16, 1, 387, 21, 387, 113, 303, 386, 114, 16, 16, 112, 16, 1, 386, 21, 386, 316, 317, 316, 316, 112, 112, 318, 114, 316, 16, 16, 112, 316, 388, 112, 316, 112, 316, 388, 316, 112, 16, 1, 300, 38, 300, 316, 113, 316, 316, 301, 112, 114, 316, 16, 16, 112, 316, 389, 112, 316, 112, 316, 389, 316, 112, 16, 1, 300, 38, 300, 316, 113, 316, 316, 301, 112, 114, 316, 16, 16, 112, 316, 390, 112, 316, 112, 316, 390, 316, 112, 16, 1, 300, 38, 300, 316, 113, 316, 316, 301, 112, 114, 316, 16, 16, 112, 316, 391, 112, 316, 112, 316, 391, 316, 112, 16, 1, 300, 38, 300, 316, 113, 316, 316, 301, 112, 114, 316, 16, 16, 112, 316, 392, 112, 316, 112, 316, 392, 316, 112, 16, 1, 300, 38, 300, 316, 113, 316, 316, 301, 112, 114, 316, 16, 16, 112, 316, 393, 112, 316, 112, 316, 393, 316, 112, 16, 1, 300, 38, 300, 316, 113, 316, 316, 301, 112, 114, 316, 16, 16, 112, 316, 394, 112, 316, 112, 316, 394, 316, 112, 16, 1, 300, 38, 300, 316, 113, 316, 316, 301, 112, 114, 316, 16, 16, 112, 316, 395, 112, 316, 112, 316, 395, 316, 112, 16, 1, 396, 132, 396, 113, 397, 114, 16, 16, 112, 16, 1, 312, 38, 312, 313, 113, 313, 313, 301, 112, 314, 398, 114, 398, 313, 16, 16, 112, 313, 112, 313, 112, 313, 112, 16, 1, 312, 38, 312, 313, 113, 313, 313, 301, 112, 314, 399, 114, 399, 313, 16, 16, 112, 313, 112, 313, 112, 313, 112, 16, 1, 312, 38, 312, 313, 113, 313, 313, 301, 112, 314, 400, 114, 400, 313, 16, 16, 112, 313, 112, 313, 112, 313, 112, 16, 1, 401, 38, 401, 313, 113, 313, 313, 301, 112, 402, 114, 313, 16, 16, 112, 313, 112, 313, 112, 313, 112, 16, 1, 403, 21, 403, 113, 303, 402, 114, 16, 16, 112, 16, 1, 404, 21, 404, 316, 405, 316, 316, 112, 112, 318, 114, 316, 16, 16, 112, 316, 112, 316, 112, 316, 112, 16, 1, 406, 116, 406, 143, 407, 144, 16, 16, 142, 16, 1, 408, 21, 408, 143, 409, 144, 16, 16, 142, 16, 1, 409, 21, 409, 410, 143, 410, 410, 142, 142, 411, 412, 413, 414, 415, 416, 417, 144, 411, 412, 413, 414, 415, 416, 417, 410, 16, 16, 142, 410, 142, 410, 142, 410, 142, 16, 1, 418, 38, 418, 419, 143, 419, 419, 420, 142, 421, 144, 419, 16, 16, 142, 419, 142, 419, 142, 419, 142, 16, 1, 422, 21, 422, 143, 409, 421, 144, 16, 16, 142, 16, 1, 421, 21, 421, 423, 424, 423, 423, 142, 142, 425, 144, 423, 16, 16, 142, 423, 142, 423, 142, 423, 142, 16, 1, 426, 38, 426, 423, 143, 423, 423, 420, 142, 144, 423, 16, 16, 142, 423, 142, 423, 142, 423, 142, 16, 1, 427, 146, 427, 51, 428, 52, 16, 16, 47, 16, 1, 142, 21, 143, 430, 144, 16, 16, 142, 429, 142, 429, 142, 429, 142, 16, 1, 142, 21, 143, 432, 144, 433, 16, 16, 142, 431, 142, 431, 142, 431, 142, 16, 1, 142, 21, 143, 432, 144, 433, 16, 16, 142, 434, 142, 434, 142, 434, 142, 16, 1, 142, 21, 143, 432, 144, 433, 16, 16, 142, 435, 142, 435, 142, 435, 142, 16, 1, 142, 21, 143, 432, 144, 433, 16, 16, 142, 16, 1, 142, 21, 143, 437, 144, 16, 16, 142, 436, 142, 429, 142, 429, 142, 16, 1, 142, 21, 143, 438, 432, 144, 433, 16, 16, 142, 439, 142, 431, 142, 431, 142, 16, 1, 142, 21, 143, 144, 16, 16, 142, 440, 142, 16, 1, 142, 21, 143, 441, 144, 16, 16, 142, 442, 142, 16, 1, 142, 21, 143, 144, 16, 16, 142, 443, 142, 16, 1, 142, 21, 143, 444, 144, 16, 16, 142, 445, 142, 16, 1, 142, 21, 143, 144, 16, 16, 142, 446, 142, 16, 1, 142, 21, 143, 144, 433, 16, 16, 142, 447, 142, 16, 1, 142, 21, 143, 144, 433, 16, 16, 142, 448, 142, 16, 1, 142, 21, 143, 144, 433, 16, 16, 142, 16, 1, 426, 38, 426, 143, 420, 144, 16, 16, 142, 16, 1, 142, 21, 143, 444, 144, 16, 16, 142, 449, 142, 16, 1, 142, 21, 143, 444, 144, 16, 16, 142, 16, 1, 142, 21, 143, 441, 144, 16, 16, 142, 450, 142, 16, 1, 142, 21, 143, 441, 144, 16, 16, 142, 16, 1, 142, 21, 143, 438, 432, 144, 433, 16, 16, 142, 451, 142, 434, 142, 434, 142, 16, 1, 142, 21, 143, 438, 432, 144, 433, 16, 16, 142, 435, 142, 435, 142, 435, 142, 16, 1, 142, 21, 143, 453, 144, 433, 16, 16, 142, 452, 142, 452, 142, 452, 142, 16, 1, 142, 21, 143, 455, 144, 433, 16, 16, 142, 454, 142, 454, 142, 454, 142, 16, 1, 142, 21, 143, 455, 144, 433, 16, 16, 142, 456, 142, 456, 142, 456, 142, 16, 1, 142, 21, 143, 455, 144, 433, 16, 16, 142, 457, 142, 457, 142, 457, 142, 16, 1, 142, 21, 143, 455, 144, 433, 16, 16, 142, 16, 1, 142, 21, 143, 144, 16, 16, 142, 458, 142, 452, 142, 452, 142, 16, 1, 142, 21, 143, 438, 455, 144, 433, 16, 16, 142, 459, 142, 454, 142, 454, 142, 16, 1, 142, 21, 143, 438, 455, 144, 433, 16, 16, 142, 460, 142, 456, 142, 456, 142, 16, 1, 142, 21, 143, 438, 455, 144, 433, 16, 16, 142, 457, 142, 457, 142, 457, 142, 16, 1, 142, 21, 143, 144, 16, 16, 142, 461, 142, 16, 1, 142, 21, 143, 438, 144, 16, 16, 142, 462, 142, 16, 1, 142, 21, 143, 438, 144, 16, 16, 142, 463, 142, 16, 1, 142, 21, 143, 438, 144, 16, 16, 142, 16, 1, 142, 21, 143, 437, 144, 16, 16, 142, 16, 1, 418, 38, 418, 419, 143, 419, 419, 420, 142, 421, 464, 144, 464, 419, 16, 16, 142, 419, 142, 419, 142, 419, 142, 16, 1, 418, 38, 418, 419, 143, 419, 419, 420, 142, 421, 465, 144, 465, 419, 16, 16, 142, 419, 142, 419, 142, 419, 142, 16, 1, 418, 38, 418, 419, 143, 419, 419, 420, 142, 421, 466, 144, 466, 419, 16, 16, 142, 419, 142, 419, 142, 419, 142, 16, 1, 418, 38, 418, 419, 143, 419, 419, 420, 142, 421, 467, 144, 467, 419, 16, 16, 142, 419, 142, 419, 142, 419, 142, 16, 1, 418, 38, 418, 419, 143, 419, 419, 420, 142, 421, 468, 144, 468, 419, 16, 16, 142, 419, 142, 419, 142, 419, 142, 16, 1, 418, 38, 418, 419, 143, 419, 419, 420, 142, 421, 469, 144, 469, 419, 16, 16, 142, 419, 142, 419, 142, 419, 142, 16, 1, 418, 38, 418, 419, 143, 419, 419, 420, 142, 421, 470, 144, 470, 419, 16, 16, 142, 419, 142, 419, 142, 419, 142, 16, 1, 418, 38, 418, 419, 143, 419, 419, 420, 142, 421, 471, 144, 471, 419, 16, 16, 142, 419, 142, 419, 142, 419, 142, 16, 1, 472, 38, 472, 419, 143, 419, 419, 420, 142, 473, 144, 419, 16, 16, 142, 419, 142, 419, 142, 419, 142, 16, 1, 474, 21, 474, 143, 409, 473, 144, 16, 16, 142, 16, 1, 473, 21, 473, 475, 424, 475, 475, 142, 142, 425, 144, 475, 16, 16, 142, 475, 142, 475, 142, 475, 142, 16, 1, 476, 99, 476, 477, 143, 477, 477, 478, 142, 144, 477, 16, 16, 142, 477, 142, 477, 142, 477, 142, 16, 1, 418, 38, 418, 419, 143, 419, 419, 420, 142, 421, 479, 144, 479, 419, 16, 16, 142, 419, 142, 419, 142, 419, 142, 16, 1, 418, 38, 418, 419, 143, 419, 419, 420, 142, 421, 480, 144, 480, 419, 16, 16, 142, 419, 142, 419, 142, 419, 142, 16, 1, 418, 38, 418, 419, 143, 419, 419, 420, 142, 421, 481, 144, 481, 419, 16, 16, 142, 419, 142, 419, 142, 419, 142, 16, 1, 418, 38, 418, 419, 143, 419, 419, 420, 142, 421, 482, 144, 482, 419, 16, 16, 142, 419, 142, 419, 142, 419, 142, 16, 1, 418, 38, 418, 419, 143, 419, 419, 420, 142, 421, 483, 144, 483, 419, 16, 16, 142, 419, 142, 419, 142, 419, 142, 16, 1, 484, 38, 484, 419, 143, 419, 419, 420, 142, 485, 144, 419, 16, 16, 142, 419, 142, 419, 142, 419, 142, 16, 1, 486, 21, 486, 143, 409, 485, 144, 16, 16, 142, 16, 1, 487, 21, 487, 423, 488, 423, 423, 142, 142, 425, 144, 423, 16, 16, 142, 423, 142, 423, 142, 423, 142, 16, 1, 489, 146, 489, 113, 490, 114, 16, 16, 112, 16, 1, 418, 38, 418, 419, 143, 419, 419, 420, 142, 421, 491, 492, 144, 491, 492, 419, 16, 16, 142, 419, 142, 419, 142, 419, 142, 16, 1, 493, 38, 493, 419, 143, 419, 419, 420, 142, 494, 144, 419, 16, 16, 142, 419, 142, 419, 142, 419, 142, 16, 1, 495, 21, 495, 143, 409, 494, 144, 16, 16, 142, 16, 1, 494, 21, 494, 423, 424, 423, 423, 142, 142, 425, 144, 423, 16, 16, 142, 423, 496, 142, 423, 142, 423, 496, 423, 142, 16, 1, 426, 38, 426, 423, 143, 423, 423, 420, 142, 144, 423, 16, 16, 142, 423, 497, 142, 423, 142, 423, 497, 423, 142, 16, 1, 426, 38, 426, 423, 143, 423, 423, 420, 142, 144, 423, 16, 16, 142, 423, 498, 142, 423, 142, 423, 498, 423, 142, 16, 1, 426, 38, 426, 423, 143, 423, 423, 420, 142, 144, 423, 16, 16, 142, 423, 499, 142, 423, 142, 423, 499, 423, 142, 16, 1, 426, 38, 426, 423, 143, 423, 423, 420, 142, 144, 423, 16, 16, 142, 423, 500, 142, 423, 142, 423, 500, 423, 142, 16, 1, 426, 38, 426, 423, 143, 423, 423, 420, 142, 144, 423, 16, 16, 142, 423, 501, 142, 423, 142, 423, 501, 423, 142, 16, 1, 426, 38, 426, 423, 143, 423, 423, 420, 142, 144, 423, 16, 16, 142, 423, 502, 142, 423, 142, 423, 502, 423, 142, 16, 1, 426, 38, 426, 423, 143, 423, 423, 420, 142, 144, 423, 16, 16, 142, 423, 503, 142, 423, 142, 423, 503, 423, 142, 16, 1, 504, 132, 504, 143, 505, 144, 16, 16, 142, 16, 1, 418, 38, 418, 419, 143, 419, 419, 420, 142, 421, 506, 144, 506, 419, 16, 16, 142, 419, 142, 419, 142, 419, 142, 16, 1, 418, 38, 418, 419, 143, 419, 419, 420, 142, 421, 507, 144, 507, 419, 16, 16, 142, 419, 142, 419, 142, 419, 142, 16, 1, 418, 38, 418, 419, 143, 419, 419, 420, 142, 421, 508, 144, 508, 419, 16, 16, 142, 419, 142, 419, 142, 419, 142, 16, 1, 509, 38, 509, 419, 143, 419, 419, 420, 142, 510, 144, 419, 16, 16, 142, 419, 142, 419, 142, 419, 142, 16, 1, 511, 21, 511, 143, 409, 510, 144, 16, 16, 142, 16, 1, 512, 21, 512, 423, 513, 423, 423, 142, 142, 425, 144, 423, 16, 16, 142, 423, 142, 423, 142, 423, 142, 16, 1, 514, 146, 514, 143, 515, 144, 16, 16, 142, 16, 1, 418, 38, 418, 419, 143, 419, 419, 420, 142, 421, 516, 144, 516, 419, 16, 16, 142, 419, 142, 419, 142, 419, 142, 16, 1, 418, 38, 418, 419, 143, 419, 419, 420, 142, 421, 517, 144, 517, 419, 16, 16, 142, 419, 142, 419, 142, 419, 142, 16, 1, 418, 38, 418, 419, 143, 419, 419, 420, 142, 421, 518, 144, 518, 419, 16, 16, 142, 419, 142, 419, 142, 419, 142, 16, 1, 418, 38, 418, 419, 143, 419, 419, 420, 142, 421, 519, 144, 519, 419, 16, 16, 142, 419, 142, 419, 142, 419, 142, 16, 1, 418, 38, 418, 419, 143, 419, 419, 420, 142, 421, 520, 144, 520, 419, 16, 16, 142, 419, 142, 419, 142, 419, 142, 16, 1, 521, 38, 521, 419, 143, 419, 419, 420, 142, 522, 144, 419, 16, 16, 142, 419, 142, 419, 142, 419, 142, 16, 1, 523, 21, 523, 143, 409, 522, 144, 16, 16, 142, 16, 1, 524, 21, 524, 423, 525, 423, 423, 142, 142, 425, 144, 423, 16, 16, 142, 423, 142, 423, 142, 423, 142, 16, 1, 526, 146, 526, 159, 527, 160, 16, 16, 158, 16, 1, 528, 21, 528, 159, 529, 160, 16, 16, 158, 16, 1, 529, 21, 529, 530, 159, 530, 530, 158, 158, 531, 532, 533, 534, 535, 536, 537, 160, 531, 532, 533, 534, 535, 536, 537, 530, 16, 16, 158, 530, 158, 530, 158, 530, 158, 16, 1, 538, 38, 538, 539, 159, 539, 539, 540, 158, 541, 160, 539, 16, 16, 158, 539, 158, 539, 158, 539, 158, 16, 1, 542, 21, 542, 159, 529, 541, 160, 16, 16, 158, 16, 1, 541, 21, 541, 543, 544, 543, 543, 158, 158, 545, 160, 543, 16, 16, 158, 543, 158, 543, 158, 543, 158, 16, 1, 546, 38, 546, 543, 159, 543, 543, 540, 158, 160, 543, 16, 16, 158, 543, 158, 543, 158, 543, 158, 16, 1, 547, 162, 547, 51, 548, 52, 16, 16, 47, 16, 1, 158, 21, 159, 550, 160, 16, 16, 158, 549, 158, 549, 158, 549, 158, 16, 1, 158, 21, 159, 552, 160, 553, 16, 16, 158, 551, 158, 551, 158, 551, 158, 16, 1, 158, 21, 159, 552, 160, 553, 16, 16, 158, 554, 158, 554, 158, 554, 158, 16, 1, 158, 21, 159, 552, 160, 553, 16, 16, 158, 555, 158, 555, 158, 555, 158, 16, 1, 158, 21, 159, 552, 160, 553, 16, 16, 158, 16, 1, 158, 21, 159, 557, 160, 16, 16, 158, 556, 158, 549, 158, 549, 158, 16, 1, 158, 21, 159, 558, 552, 160, 553, 16, 16, 158, 559, 158, 551, 158, 551, 158, 16, 1, 158, 21, 159, 160, 16, 16, 158, 560, 158, 16, 1, 158, 21, 159, 561, 160, 16, 16, 158, 562, 158, 16, 1, 158, 21, 159, 160, 16, 16, 158, 563, 158, 16, 1, 158, 21, 159, 564, 160, 16, 16, 158, 565, 158, 16, 1, 158, 21, 159, 160, 16, 16, 158, 566, 158, 16, 1, 158, 21, 159, 160, 553, 16, 16, 158, 567, 158, 16, 1, 158, 21, 159, 160, 553, 16, 16, 158, 568, 158, 16, 1, 158, 21, 159, 160, 553, 16, 16, 158, 16, 1, 546, 38, 546, 159, 540, 160, 16, 16, 158, 16, 1, 158, 21, 159, 564, 160, 16, 16, 158, 569, 158, 16, 1, 158, 21, 159, 564, 160, 16, 16, 158, 16, 1, 158, 21, 159, 561, 160, 16, 16, 158, 570, 158, 16, 1, 158, 21, 159, 561, 160, 16, 16, 158, 16, 1, 158, 21, 159, 558, 552, 160, 553, 16, 16, 158, 571, 158, 554, 158, 554, 158, 16, 1, 158, 21, 159, 558, 552, 160, 553, 16, 16, 158, 555, 158, 555, 158, 555, 158, 16, 1, 158, 21, 159, 573, 160, 553, 16, 16, 158, 572, 158, 572, 158, 572, 158, 16, 1, 158, 21, 159, 575, 160, 553, 16, 16, 158, 574, 158, 574, 158, 574, 158, 16, 1, 158, 21, 159, 575, 160, 553, 16, 16, 158, 576, 158, 576, 158, 576, 158, 16, 1, 158, 21, 159, 575, 160, 553, 16, 16, 158, 577, 158, 577, 158, 577, 158, 16, 1, 158, 21, 159, 575, 160, 553, 16, 16, 158, 16, 1, 158, 21, 159, 160, 16, 16, 158, 578, 158, 572, 158, 572, 158, 16, 1, 158, 21, 159, 558, 575, 160, 553, 16, 16, 158, 579, 158, 574, 158, 574, 158, 16, 1, 158, 21, 159, 558, 575, 160, 553, 16, 16, 158, 580, 158, 576, 158, 576, 158, 16, 1, 158, 21, 159, 558, 575, 160, 553, 16, 16, 158, 577, 158, 577, 158, 577, 158, 16, 1, 158, 21, 159, 160, 16, 16, 158, 581, 158, 16, 1, 158, 21, 159, 558, 160, 16, 16, 158, 582, 158, 16, 1, 158, 21, 159, 558, 160, 16, 16, 158, 583, 158, 16, 1, 158, 21, 159, 558, 160, 16, 16, 158, 16, 1, 158, 21, 159, 557, 160, 16, 16, 158, 16, 1, 538, 38, 538, 539, 159, 539, 539, 540, 158, 541, 584, 160, 584, 539, 16, 16, 158, 539, 158, 539, 158, 539, 158, 16, 1, 538, 38, 538, 539, 159, 539, 539, 540, 158, 541, 585, 160, 585, 539, 16, 16, 158, 539, 158, 539, 158, 539, 158, 16, 1, 538, 38, 538, 539, 159, 539, 539, 540, 158, 541, 586, 160, 586, 539, 16, 16, 158, 539, 158, 539, 158, 539, 158, 16, 1, 538, 38, 538, 539, 159, 539, 539, 540, 158, 541, 587, 160, 587, 539, 16, 16, 158, 539, 158, 539, 158, 539, 158, 16, 1, 538, 38, 538, 539, 159, 539, 539, 540, 158, 541, 588, 160, 588, 539, 16, 16, 158, 539, 158, 539, 158, 539, 158, 16, 1, 538, 38, 538, 539, 159, 539, 539, 540, 158, 541, 589, 160, 589, 539, 16, 16, 158, 539, 158, 539, 158, 539, 158, 16, 1, 538, 38, 538, 539, 159, 539, 539, 540, 158, 541, 590, 160, 590, 539, 16, 16, 158, 539, 158, 539, 158, 539, 158, 16, 1, 538, 38, 538, 539, 159, 539, 539, 540, 158, 541, 591, 160, 591, 539, 16, 16, 158, 539, 158, 539, 158, 539, 158, 16, 1, 592, 38, 592, 539, 159, 539, 539, 540, 158, 593, 160, 539, 16, 16, 158, 539, 158, 539, 158, 539, 158, 16, 1, 594, 21, 594, 159, 529, 593, 160, 16, 16, 158, 16, 1, 593, 21, 593, 595, 544, 595, 595, 158, 158, 545, 160, 595, 16, 16, 158, 595, 158, 595, 158, 595, 158, 16, 1, 596, 99, 596, 597, 159, 597, 597, 598, 158, 160, 597, 16, 16, 158, 597, 158, 597, 158, 597, 158, 16, 1, 538, 38, 538, 539, 159, 539, 539, 540, 158, 541, 599, 160, 599, 539, 16, 16, 158, 539, 158, 539, 158, 539, 158, 16, 1, 538, 38, 538, 539, 159, 539, 539, 540, 158, 541, 600, 160, 600, 539, 16, 16, 158, 539, 158, 539, 158, 539, 158, 16, 1, 538, 38, 538, 539, 159, 539, 539, 540, 158, 541, 601, 160, 601, 539, 16, 16, 158, 539, 158, 539, 158, 539, 158, 16, 1, 538, 38, 538, 539, 159, 539, 539, 540, 158, 541, 602, 160, 602, 539, 16, 16, 158, 539, 158, 539, 158, 539, 158, 16, 1, 538, 38, 538, 539, 159, 539, 539, 540, 158, 541, 603, 160, 603, 539, 16, 16, 158, 539, 158, 539, 158, 539, 158, 16, 1, 604, 38, 604, 539, 159, 539, 539, 540, 158, 605, 160, 539, 16, 16, 158, 539, 158, 539, 158, 539, 158, 16, 1, 606, 21, 606, 159, 529, 605, 160, 16, 16, 158, 16, 1, 607, 21, 607, 543, 608, 543, 543, 158, 158, 545, 160, 543, 16, 16, 158, 543, 158, 543, 158, 543, 158, 16, 1, 609, 162, 609, 113, 610, 114, 16, 16, 112, 16, 1, 538, 38, 538, 539, 159, 539, 539, 540, 158, 541, 611, 612, 160, 611, 612, 539, 16, 16, 158, 539, 158, 539, 158, 539, 158, 16, 1, 613, 38, 613, 539, 159, 539, 539, 540, 158, 614, 160, 539, 16, 16, 158, 539, 158, 539, 158, 539, 158, 16, 1, 615, 21, 615, 159, 529, 614, 160, 16, 16, 158, 16, 1, 614, 21, 614, 543, 544, 543, 543, 158, 158, 545, 160, 543, 16, 16, 158, 543, 616, 158, 543, 158, 543, 616, 543, 158, 16, 1, 546, 38, 546, 543, 159, 543, 543, 540, 158, 160, 543, 16, 16, 158, 543, 617, 158, 543, 158, 543, 617, 543, 158, 16, 1, 546, 38, 546, 543, 159, 543, 543, 540, 158, 160, 543, 16, 16, 158, 543, 618, 158, 543, 158, 543, 618, 543, 158, 16, 1, 546, 38, 546, 543, 159, 543, 543, 540, 158, 160, 543, 16, 16, 158, 543, 619, 158, 543, 158, 543, 619, 543, 158, 16, 1, 546, 38, 546, 543, 159, 543, 543, 540, 158, 160, 543, 16, 16, 158, 543, 620, 158, 543, 158, 543, 620, 543, 158, 16, 1, 546, 38, 546, 543, 159, 543, 543, 540, 158, 160, 543, 16, 16, 158, 543, 621, 158, 543, 158, 543, 621, 543, 158, 16, 1, 546, 38, 546, 543, 159, 543, 543, 540, 158, 160, 543, 16, 16, 158, 543, 622, 158, 543, 158, 543, 622, 543, 158, 16, 1, 546, 38, 546, 543, 159, 543, 543, 540, 158, 160, 543, 16, 16, 158, 543, 623, 158, 543, 158, 543, 623, 543, 158, 16, 1, 624, 132, 624, 159, 625, 160, 16, 16, 158, 16, 1, 538, 38, 538, 539, 159, 539, 539, 540, 158, 541, 626, 160, 626, 539, 16, 16, 158, 539, 158, 539, 158, 539, 158, 16, 1, 538, 38, 538, 539, 159, 539, 539, 540, 158, 541, 627, 160, 627, 539, 16, 16, 158, 539, 158, 539, 158, 539, 158, 16, 1, 538, 38, 538, 539, 159, 539, 539, 540, 158, 541, 628, 160, 628, 539, 16, 16, 158, 539, 158, 539, 158, 539, 158, 16, 1, 629, 38, 629, 539, 159, 539, 539, 540, 158, 630, 160, 539, 16, 16, 158, 539, 158, 539, 158, 539, 158, 16, 1, 631, 21, 631, 159, 529, 630, 160, 16, 16, 158, 16, 1, 632, 21, 632, 543, 633, 543, 543, 158, 158, 545, 160, 543, 16, 16, 158, 543, 158, 543, 158, 543, 158, 16, 1, 634, 162, 634, 143, 635, 144, 16, 16, 142, 16, 1, 538, 38, 538, 539, 159, 539, 539, 540, 158, 541, 636, 160, 636, 539, 16, 16, 158, 539, 158, 539, 158, 539, 158, 16, 1, 538, 38, 538, 539, 159, 539, 539, 540, 158, 541, 637, 160, 637, 539, 16, 16, 158, 539, 158, 539, 158, 539, 158, 16, 1, 538, 38, 538, 539, 159, 539, 539, 540, 158, 541, 638, 160, 638, 539, 16, 16, 158, 539, 158, 539, 158, 539, 158, 16, 1, 538, 38, 538, 539, 159, 539, 539, 540, 158, 541, 639, 160, 639, 539, 16, 16, 158, 539, 158, 539, 158, 539, 158, 16, 1, 538, 38, 538, 539, 159, 539, 539, 540, 158, 541, 640, 160, 640, 539, 16, 16, 158, 539, 158, 539, 158, 539, 158, 16, 1, 641, 38, 641, 539, 159, 539, 539, 540, 158, 642, 160, 539, 16, 16, 158, 539, 158, 539, 158, 539, 158, 16, 1, 643, 21, 643, 159, 529, 642, 160, 16, 16, 158, 16, 1, 644, 21, 644, 543, 645, 543, 543, 158, 158, 545, 160, 543, 16, 16, 158, 543, 158, 543, 158, 543, 158, 16, 1, 646, 162, 646, 159, 647, 160, 16, 16, 158, 16, 1, 538, 38, 538, 539, 159, 539, 539, 540, 158, 541, 648, 160, 648, 539, 16, 16, 158, 539, 158, 539, 158, 539, 158, 16, 1, 538, 38, 538, 539, 159, 539, 539, 540, 158, 541, 649, 160, 649, 539, 16, 16, 158, 539, 158, 539, 158, 539, 158, 16, 1, 650, 38, 650, 539, 159, 539, 539, 540, 158, 651, 160, 539, 16, 16, 158, 539, 158, 539, 158, 539, 158, 16, 1, 652, 21, 652, 159, 529, 651, 160, 16, 16, 158, 16, 1, 651, 21, 651, 653, 544, 653, 653, 158, 158, 545, 160, 653, 16, 16, 158, 653, 158, 653, 158, 653, 158, 16, 1, 654, 171, 654, 655, 159, 655, 655, 656, 158, 160, 655, 16, 16, 158, 655, 158, 655, 158, 655, 158, 16, 1, 538, 38, 538, 539, 159, 539, 539, 540, 158, 541, 657, 160, 657, 539, 16, 16, 158, 539, 158, 539, 158, 539, 158, 16, 1, 538, 38, 538, 539, 159, 539, 539, 540, 158, 541, 658, 659, 160, 658, 659, 539, 16, 16, 158, 539, 158, 539, 158, 539, 158, 16, 1, 538, 38, 538, 539, 159, 539, 539, 540, 158, 541, 660, 160, 660, 539, 16, 16, 158, 539, 158, 539, 158, 539, 158, 16, 1, 538, 38, 538, 539, 159, 539, 539, 540, 158, 541, 661, 160, 661, 539, 16, 16, 158, 539, 158, 539, 158, 539, 158, 16, 1, 662, 38, 662, 539, 159, 539, 539, 540, 158, 663, 160, 539, 16, 16, 158, 539, 158, 539, 158, 539, 158, 16, 1, 664, 21, 664, 159, 529, 663, 160, 16, 16, 158, 16, 1, 665, 21, 665, 543, 666, 543, 543, 158, 158, 545, 160, 543, 16, 16, 158, 543, 158, 543, 158, 543, 158, 16, 1, 667, 162, 667, 185, 668, 186, 16, 16, 184, 16, 1, 669, 21, 669, 185, 670, 186, 16, 16, 184, 16, 1, 670, 21, 670, 671, 185, 671, 671, 184, 184, 672, 673, 674, 675, 676, 677, 678, 186, 672, 673, 674, 675, 676, 677, 678, 671, 16, 16, 184, 671, 184, 671, 184, 671, 184, 16, 1, 679, 38, 679, 680, 185, 680, 680, 681, 184, 682, 186, 680, 16, 16, 184, 680, 184, 680, 184, 680, 184, 16, 1, 683, 21, 683, 185, 670, 682, 186, 16, 16, 184, 16, 1, 682, 21, 682, 684, 685, 684, 684, 184, 184, 686, 186, 684, 16, 16, 184, 684, 184, 684, 184, 684, 184, 16, 1, 687, 38, 687, 684, 185, 684, 684, 681, 184, 186, 684, 16, 16, 184, 684, 184, 684, 184, 684, 184, 16, 1, 688, 188, 688, 51, 689, 52, 16, 16, 47, 16, 1, 184, 21, 185, 691, 186, 16, 16, 184, 690, 184, 690, 184, 690, 184, 16, 1, 184, 21, 185, 693, 186, 694, 16, 16, 184, 692, 184, 692, 184, 692, 184, 16, 1, 184, 21, 185, 693, 186, 694, 16, 16, 184, 695, 184, 695, 184, 695, 184, 16, 1, 184, 21, 185, 693, 186, 694, 16, 16, 184, 696, 184, 696, 184, 696, 184, 16, 1, 184, 21, 185, 693, 186, 694, 16, 16, 184, 16, 1, 184, 21, 185, 698, 186, 16, 16, 184, 697, 184, 690, 184, 690, 184, 16, 1, 184, 21, 185, 699, 693, 186, 694, 16, 16, 184, 700, 184, 692, 184, 692, 184, 16, 1, 184, 21, 185, 186, 16, 16, 184, 701, 184, 16, 1, 184, 21, 185, 702, 186, 16, 16, 184, 703, 184, 16, 1, 184, 21, 185, 186, 16, 16, 184, 704, 184, 16, 1, 184, 21, 185, 705, 186, 16, 16, 184, 706, 184, 16, 1, 184, 21, 185, 186, 16, 16, 184, 707, 184, 16, 1, 184, 21, 185, 186, 694, 16, 16, 184, 708, 184, 16, 1, 184, 21, 185, 186, 694, 16, 16, 184, 709, 184, 16, 1, 184, 21, 185, 186, 694, 16, 16, 184, 16, 1, 687, 38, 687, 185, 681, 186, 16, 16, 184, 16, 1, 184, 21, 185, 705, 186, 16, 16, 184, 710, 184, 16, 1, 184, 21, 185, 705, 186, 16, 16, 184, 16, 1, 184, 21, 185, 702, 186, 16, 16, 184, 711, 184, 16, 1, 184, 21, 185, 702, 186, 16, 16, 184, 16, 1, 184, 21, 185, 699, 693, 186, 694, 16, 16, 184, 712, 184, 695, 184, 695, 184, 16, 1, 184, 21, 185, 699, 693, 186, 694, 16, 16, 184, 696, 184, 696, 184, 696, 184, 16, 1, 184, 21, 185, 714, 186, 694, 16, 16, 184, 713, 184, 713, 184, 713, 184, 16, 1, 184, 21, 185, 716, 186, 694, 16, 16, 184, 715, 184, 715, 184, 715, 184, 16, 1, 184, 21, 185, 716, 186, 694, 16, 16, 184, 717, 184, 717, 184, 717, 184, 16, 1, 184, 21, 185, 716, 186, 694, 16, 16, 184, 718, 184, 718, 184, 718, 184, 16, 1, 184, 21, 185, 716, 186, 694, 16, 16, 184, 16, 1, 184, 21, 185, 186, 16, 16, 184, 719, 184, 713, 184, 713, 184, 16, 1, 184, 21, 185, 699, 716, 186, 694, 16, 16, 184, 720, 184, 715, 184, 715, 184, 16, 1, 184, 21, 185, 699, 716, 186, 694, 16, 16, 184, 721, 184, 717, 184, 717, 184, 16, 1, 184, 21, 185, 699, 716, 186, 694, 16, 16, 184, 718, 184, 718, 184, 718, 184, 16, 1, 184, 21, 185, 186, 16, 16, 184, 722, 184, 16, 1, 184, 21, 185, 699, 186, 16, 16, 184, 723, 184, 16, 1, 184, 21, 185, 699, 186, 16, 16, 184, 724, 184, 16, 1, 184, 21, 185, 699, 186, 16, 16, 184, 16, 1, 184, 21, 185, 698, 186, 16, 16, 184, 16, 1, 679, 38, 679, 680, 185, 680, 680, 681, 184, 682, 725, 186, 725, 680, 16, 16, 184, 680, 184, 680, 184, 680, 184, 16, 1, 679, 38, 679, 680, 185, 680, 680, 681, 184, 682, 726, 186, 726, 680, 16, 16, 184, 680, 184, 680, 184, 680, 184, 16, 1, 679, 38, 679, 680, 185, 680, 680, 681, 184, 682, 727, 186, 727, 680, 16, 16, 184, 680, 184, 680, 184, 680, 184, 16, 1, 679, 38, 679, 680, 185, 680, 680, 681, 184, 682, 728, 186, 728, 680, 16, 16, 184, 680, 184, 680, 184, 680, 184, 16, 1, 679, 38, 679, 680, 185, 680, 680, 681, 184, 682, 729, 186, 729, 680, 16, 16, 184, 680, 184, 680, 184, 680, 184, 16, 1, 679, 38, 679, 680, 185, 680, 680, 681, 184, 682, 730, 186, 730, 680, 16, 16, 184, 680, 184, 680, 184, 680, 184, 16, 1, 679, 38, 679, 680, 185, 680, 680, 681, 184, 682, 731, 186, 731, 680, 16, 16, 184, 680, 184, 680, 184, 680, 184, 16, 1, 679, 38, 679, 680, 185, 680, 680, 681, 184, 682, 732, 186, 732, 680, 16, 16, 184, 680, 184, 680, 184, 680, 184, 16, 1, 733, 38, 733, 680, 185, 680, 680, 681, 184, 734, 186, 680, 16, 16, 184, 680, 184, 680, 184, 680, 184, 16, 1, 735, 21, 735, 185, 670, 734, 186, 16, 16, 184, 16, 1, 734, 21, 734, 736, 685, 736, 736, 184, 184, 686, 186, 736, 16, 16, 184, 736, 184, 736, 184, 736, 184, 16, 1, 737, 99, 737, 738, 185, 738, 738, 739, 184, 186, 738, 16, 16, 184, 738, 184, 738, 184, 738, 184, 16, 1, 679, 38, 679, 680, 185, 680, 680, 681, 184, 682, 740, 186, 740, 680, 16, 16, 184, 680, 184, 680, 184, 680, 184, 16, 1, 679, 38, 679, 680, 185, 680, 680, 681, 184, 682, 741, 186, 741, 680, 16, 16, 184, 680, 184, 680, 184, 680, 184, 16, 1, 679, 38, 679, 680, 185, 680, 680, 681, 184, 682, 742, 186, 742, 680, 16, 16, 184, 680, 184, 680, 184, 680, 184, 16, 1, 679, 38, 679, 680, 185, 680, 680, 681, 184, 682, 743, 186, 743, 680, 16, 16, 184, 680, 184, 680, 184, 680, 184, 16, 1, 679, 38, 679, 680, 185, 680, 680, 681, 184, 682, 744, 186, 744, 680, 16, 16, 184, 680, 184, 680, 184, 680, 184, 16, 1, 745, 38, 745, 680, 185, 680, 680, 681, 184, 746, 186, 680, 16, 16, 184, 680, 184, 680, 184, 680, 184, 16, 1, 747, 21, 747, 185, 670, 746, 186, 16, 16, 184, 16, 1, 748, 21, 748, 684, 749, 684, 684, 184, 184, 686, 186, 684, 16, 16, 184, 684, 184, 684, 184, 684, 184, 16, 1, 750, 188, 750, 113, 751, 114, 16, 16, 112, 16, 1, 679, 38, 679, 680, 185, 680, 680, 681, 184, 682, 752, 753, 186, 752, 753, 680, 16, 16, 184, 680, 184, 680, 184, 680, 184, 16, 1, 754, 38, 754, 680, 185, 680, 680, 681, 184, 755, 186, 680, 16, 16, 184, 680, 184, 680, 184, 680, 184, 16, 1, 756, 21, 756, 185, 670, 755, 186, 16, 16, 184, 16, 1, 755, 21, 755, 684, 685, 684, 684, 184, 184, 686, 186, 684, 16, 16, 184, 684, 757, 184, 684, 184, 684, 757, 684, 184, 16, 1, 687, 38, 687, 684, 185, 684, 684, 681, 184, 186, 684, 16, 16, 184, 684, 758, 184, 684, 184, 684, 758, 684, 184, 16, 1, 687, 38, 687, 684, 185, 684, 684, 681, 184, 186, 684, 16, 16, 184, 684, 759, 184, 684, 184, 684, 759, 684, 184, 16, 1, 687, 38, 687, 684, 185, 684, 684, 681, 184, 186, 684, 16, 16, 184, 684, 760, 184, 684, 184, 684, 760, 684, 184, 16, 1, 687, 38, 687, 684, 185, 684, 684, 681, 184, 186, 684, 16, 16, 184, 684, 761, 184, 684, 184, 684, 761, 684, 184, 16, 1, 687, 38, 687, 684, 185, 684, 684, 681, 184, 186, 684, 16, 16, 184, 684, 762, 184, 684, 184, 684, 762, 684, 184, 16, 1, 687, 38, 687, 684, 185, 684, 684, 681, 184, 186, 684, 16, 16, 184, 684, 763, 184, 684, 184, 684, 763, 684, 184, 16, 1, 687, 38, 687, 684, 185, 684, 684, 681, 184, 186, 684, 16, 16, 184, 684, 764, 184, 684, 184, 684, 764, 684, 184, 16, 1, 765, 132, 765, 185, 766, 186, 16, 16, 184, 16, 1, 679, 38, 679, 680, 185, 680, 680, 681, 184, 682, 767, 186, 767, 680, 16, 16, 184, 680, 184, 680, 184, 680, 184, 16, 1, 679, 38, 679, 680, 185, 680, 680, 681, 184, 682, 768, 186, 768, 680, 16, 16, 184, 680, 184, 680, 184, 680, 184, 16, 1, 679, 38, 679, 680, 185, 680, 680, 681, 184, 682, 769, 186, 769, 680, 16, 16, 184, 680, 184, 680, 184, 680, 184, 16, 1, 770, 38, 770, 680, 185, 680, 680, 681, 184, 771, 186, 680, 16, 16, 184, 680, 184, 680, 184, 680, 184, 16, 1, 772, 21, 772, 185, 670, 771, 186, 16, 16, 184, 16, 1, 773, 21, 773, 684, 774, 684, 684, 184, 184, 686, 186, 684, 16, 16, 184, 684, 184, 684, 184, 684, 184, 16, 1, 775, 188, 775, 143, 776, 144, 16, 16, 142, 16, 1, 679, 38, 679, 680, 185, 680, 680, 681, 184, 682, 777, 186, 777, 680, 16, 16, 184, 680, 184, 680, 184, 680, 184, 16, 1, 679, 38, 679, 680, 185, 680, 680, 681, 184, 682, 778, 186, 778, 680, 16, 16, 184, 680, 184, 680, 184, 680, 184, 16, 1, 679, 38, 679, 680, 185, 680, 680, 681, 184, 682, 779, 186, 779, 680, 16, 16, 184, 680, 184, 680, 184, 680, 184, 16, 1, 679, 38, 679, 680, 185, 680, 680, 681, 184, 682, 780, 186, 780, 680, 16, 16, 184, 680, 184, 680, 184, 680, 184, 16, 1, 679, 38, 679, 680, 185, 680, 680, 681, 184, 682, 781, 186, 781, 680, 16, 16, 184, 680, 184, 680, 184, 680, 184, 16, 1, 782, 38, 782, 680, 185, 680, 680, 681, 184, 783, 186, 680, 16, 16, 184, 680, 184, 680, 184, 680, 184, 16, 1, 784, 21, 784, 185, 670, 783, 186, 16, 16, 184, 16, 1, 785, 21, 785, 684, 786, 684, 684, 184, 184, 686, 186, 684, 16, 16, 184, 684, 184, 684, 184, 684, 184, 16, 1, 787, 188, 787, 159, 788, 160, 16, 16, 158, 16, 1, 679, 38, 679, 680, 185, 680, 680, 681, 184, 682, 789, 186, 789, 680, 16, 16, 184, 680, 184, 680, 184, 680, 184, 16, 1, 679, 38, 679, 680, 185, 680, 680, 681, 184, 682, 790, 186, 790, 680, 16, 16, 184, 680, 184, 680, 184, 680, 184, 16, 1, 791, 38, 791, 680, 185, 680, 680, 681, 184, 792, 186, 680, 16, 16, 184, 680, 184, 680, 184, 680, 184, 16, 1, 793, 21, 793, 185, 670, 792, 186, 16, 16, 184, 16, 1, 792, 21, 792, 794, 685, 794, 794, 184, 184, 686, 186, 794, 16, 16, 184, 794, 184, 794, 184, 794, 184, 16, 1, 795, 171, 795, 796, 185, 796, 796, 797, 184, 186, 796, 16, 16, 184, 796, 184, 796, 184, 796, 184, 16, 1, 679, 38, 679, 680, 185, 680, 680, 681, 184, 682, 798, 186, 798, 680, 16, 16, 184, 680, 184, 680, 184, 680, 184, 16, 1, 679, 38, 679, 680, 185, 680, 680, 681, 184, 682, 799, 800, 186, 799, 800, 680, 16, 16, 184, 680, 184, 680, 184, 680, 184, 16, 1, 679, 38, 679, 680, 185, 680, 680, 681, 184, 682, 801, 186, 801, 680, 16, 16, 184, 680, 184, 680, 184, 680, 184, 16, 1, 679, 38, 679, 680, 185, 680, 680, 681, 184, 682, 802, 186, 802, 680, 16, 16, 184, 680, 184, 680, 184, 680, 184, 16, 1, 803, 38, 803, 680, 185, 680, 680, 681, 184, 804, 186, 680, 16, 16, 184, 680, 184, 680, 184, 680, 184, 16, 1, 805, 21, 805, 185, 670, 804, 186, 16, 16, 184, 16, 1, 806, 21, 806, 684, 807, 684, 684, 184, 184, 686, 186, 684, 16, 16, 184, 684, 184, 684, 184, 684, 184, 16, 1, 808, 188, 808, 185, 809, 186, 16, 16, 184, 16, 1, 679, 38, 679, 680, 185, 680, 680, 681, 184, 682, 810, 186, 810, 680, 16, 16, 184, 680, 184, 680, 184, 680, 184, 16, 1, 679, 38, 679, 680, 185, 680, 680, 681, 184, 682, 811, 186, 811, 680, 16, 16, 184, 680, 184, 680, 184, 680, 184, 16, 1, 679, 38, 679, 680, 185, 680, 680, 681, 184, 682, 812, 186, 812, 680, 16, 16, 184, 680, 184, 680, 184, 680, 184, 16, 1, 679, 38, 679, 680, 185, 680, 680, 681, 184, 682, 813, 186, 813, 680, 16, 16, 184, 680, 184, 680, 184, 680, 184, 16, 1, 679, 38, 679, 680, 185, 680, 680, 681, 184, 682, 814, 186, 814, 680, 16, 16, 184, 680, 184, 680, 184, 680, 184, 16, 1, 815, 38, 815, 680, 185, 680, 680, 681, 184, 816, 186, 680, 16, 16, 184, 680, 184, 680, 184, 680, 184, 16, 1, 817, 21, 817, 185, 670, 816, 186, 16, 16, 184, 16, 1, 818, 21, 818, 684, 819, 684, 684, 184, 184, 686, 186, 684, 16, 16, 184, 684, 184, 684, 184, 684, 184, 16, 1, 820, 188, 820, 201, 821, 202, 16, 16, 200, 16, 1, 822, 21, 822, 201, 823, 202, 16, 16, 200, 16, 1, 823, 21, 823, 824, 201, 824, 824, 200, 200, 825, 826, 827, 828, 829, 830, 831, 202, 825, 826, 827, 828, 829, 830, 831, 824, 16, 16, 200, 824, 200, 824, 200, 824, 200, 16, 1, 832, 38, 832, 833, 201, 833, 833, 834, 200, 835, 202, 833, 16, 16, 200, 833, 200, 833, 200, 833, 200, 16, 1, 836, 21, 836, 201, 823, 835, 202, 16, 16, 200, 16, 1, 835, 21, 835, 837, 838, 837, 837, 200, 200, 839, 202, 837, 16, 16, 200, 837, 200, 837, 200, 837, 200, 16, 1, 840, 38, 840, 837, 201, 837, 837, 834, 200, 202, 837, 16, 16, 200, 837, 200, 837, 200, 837, 200, 16, 1, 841, 204, 841, 51, 842, 52, 16, 16, 47, 16, 1, 200, 21, 201, 844, 202, 16, 16, 200, 843, 200, 843, 200, 843, 200, 16, 1, 200, 21, 201, 846, 202, 847, 16, 16, 200, 845, 200, 845, 200, 845, 200, 16, 1, 200, 21, 201, 846, 202, 847, 16, 16, 200, 848, 200, 848, 200, 848, 200, 16, 1, 200, 21, 201, 846, 202, 847, 16, 16, 200, 849, 200, 849, 200, 849, 200, 16, 1, 200, 21, 201, 846, 202, 847, 16, 16, 200, 16, 1, 200, 21, 201, 851, 202, 16, 16, 200, 850, 200, 843, 200, 843, 200, 16, 1, 200, 21, 201, 852, 846, 202, 847, 16, 16, 200, 853, 200, 845, 200, 845, 200, 16, 1, 200, 21, 201, 202, 16, 16, 200, 854, 200, 16, 1, 200, 21, 201, 855, 202, 16, 16, 200, 856, 200, 16, 1, 200, 21, 201, 202, 16, 16, 200, 857, 200, 16, 1, 200, 21, 201, 858, 202, 16, 16, 200, 859, 200, 16, 1, 200, 21, 201, 202, 16, 16, 200, 860, 200, 16, 1, 200, 21, 201, 202, 847, 16, 16, 200, 861, 200, 16, 1, 200, 21, 201, 202, 847, 16, 16, 200, 862, 200, 16, 1, 200, 21, 201, 202, 847, 16, 16, 200, 16, 1, 840, 38, 840, 201, 834, 202, 16, 16, 200, 16, 1, 200, 21, 201, 858, 202, 16, 16, 200, 863, 200, 16, 1, 200, 21, 201, 858, 202, 16, 16, 200, 16, 1, 200, 21, 201, 855, 202, 16, 16, 200, 864, 200, 16, 1, 200, 21, 201, 855, 202, 16, 16, 200, 16, 1, 200, 21, 201, 852, 846, 202, 847, 16, 16, 200, 865, 200, 848, 200, 848, 200, 16, 1, 200, 21, 201, 852, 846, 202, 847, 16, 16, 200, 849, 200, 849, 200, 849, 200, 16, 1, 200, 21, 201, 867, 202, 847, 16, 16, 200, 866, 200, 866, 200, 866, 200, 16, 1, 200, 21, 201, 869, 202, 847, 16, 16, 200, 868, 200, 868, 200, 868, 200, 16, 1, 200, 21, 201, 869, 202, 847, 16, 16, 200, 870, 200, 870, 200, 870, 200, 16, 1, 200, 21, 201, 869, 202, 847, 16, 16, 200, 871, 200, 871, 200, 871, 200, 16, 1, 200, 21, 201, 869, 202, 847, 16, 16, 200, 16, 1, 200, 21, 201, 202, 16, 16, 200, 872, 200, 866, 200, 866, 200, 16, 1, 200, 21, 201, 852, 869, 202, 847, 16, 16, 200, 873, 200, 868, 200, 868, 200, 16, 1, 200, 21, 201, 852, 869, 202, 847, 16, 16, 200, 874, 200, 870, 200, 870, 200, 16, 1, 200, 21, 201, 852, 869, 202, 847, 16, 16, 200, 871, 200, 871, 200, 871, 200, 16, 1, 200, 21, 201, 202, 16, 16, 200, 875, 200, 16, 1, 200, 21, 201, 852, 202, 16, 16, 200, 876, 200, 16, 1, 200, 21, 201, 852, 202, 16, 16, 200, 877, 200, 16, 1, 200, 21, 201, 852, 202, 16, 16, 200, 16, 1, 200, 21, 201, 851, 202, 16, 16, 200, 16, 1, 832, 38, 832, 833, 201, 833, 833, 834, 200, 835, 878, 202, 878, 833, 16, 16, 200, 833, 200, 833, 200, 833, 200, 16, 1, 832, 38, 832, 833, 201, 833, 833, 834, 200, 835, 879, 202, 879, 833, 16, 16, 200, 833, 200, 833, 200, 833, 200, 16, 1, 832, 38, 832, 833, 201, 833, 833, 834, 200, 835, 880, 202, 880, 833, 16, 16, 200, 833, 200, 833, 200, 833, 200, 16, 1, 832, 38, 832, 833, 201, 833, 833, 834, 200, 835, 881, 202, 881, 833, 16, 16, 200, 833, 200, 833, 200, 833, 200, 16, 1, 832, 38, 832, 833, 201, 833, 833, 834, 200, 835, 882, 202, 882, 833, 16, 16, 200, 833, 200, 833, 200, 833, 200, 16, 1, 832, 38, 832, 833, 201, 833, 833, 834, 200, 835, 883, 202, 883, 833, 16, 16, 200, 833, 200, 833, 200, 833, 200, 16, 1, 832, 38, 832, 833, 201, 833, 833, 834, 200, 835, 884, 202, 884, 833, 16, 16, 200, 833, 200, 833, 200, 833, 200, 16, 1, 832, 38, 832, 833, 201, 833, 833, 834, 200, 835, 885, 202, 885, 833, 16, 16, 200, 833, 200, 833, 200, 833, 200, 16, 1, 886, 38, 886, 833, 201, 833, 833, 834, 200, 887, 202, 833, 16, 16, 200, 833, 200, 833, 200, 833, 200, 16, 1, 888, 21, 888, 201, 823, 887, 202, 16, 16, 200, 16, 1, 887, 21, 887, 889, 838, 889, 889, 200, 200, 839, 202, 889, 16, 16, 200, 889, 200, 889, 200, 889, 200, 16, 1, 890, 99, 890, 891, 201, 891, 891, 892, 200, 202, 891, 16, 16, 200, 891, 200, 891, 200, 891, 200, 16, 1, 832, 38, 832, 833, 201, 833, 833, 834, 200, 835, 893, 202, 893, 833, 16, 16, 200, 833, 200, 833, 200, 833, 200, 16, 1, 832, 38, 832, 833, 201, 833, 833, 834, 200, 835, 894, 202, 894, 833, 16, 16, 200, 833, 200, 833, 200, 833, 200, 16, 1, 832, 38, 832, 833, 201, 833, 833, 834, 200, 835, 895, 202, 895, 833, 16, 16, 200, 833, 200, 833, 200, 833, 200, 16, 1, 832, 38, 832, 833, 201, 833, 833, 834, 200, 835, 896, 202, 896, 833, 16, 16, 200, 833, 200, 833, 200, 833, 200, 16, 1, 832, 38, 832, 833, 201, 833, 833, 834, 200, 835, 897, 202, 897, 833, 16, 16, 200, 833, 200, 833, 200, 833, 200, 16, 1, 898, 38, 898, 833, 201, 833, 833, 834, 200, 899, 202, 833, 16, 16, 200, 833, 200, 833, 200, 833, 200, 16, 1, 900, 21, 900, 201, 823, 899, 202, 16, 16, 200, 16, 1, 901, 21, 901, 837, 902, 837, 837, 200, 200, 839, 202, 837, 16, 16, 200, 837, 200, 837, 200, 837, 200, 16, 1, 903, 204, 903, 113, 904, 114, 16, 16, 112, 16, 1, 832, 38, 832, 833, 201, 833, 833, 834, 200, 835, 905, 906, 202, 905, 906, 833, 16, 16, 200, 833, 200, 833, 200, 833, 200, 16, 1, 907, 38, 907, 833, 201, 833, 833, 834, 200, 908, 202, 833, 16, 16, 200, 833, 200, 833, 200, 833, 200, 16, 1, 909, 21, 909, 201, 823, 908, 202, 16, 16, 200, 16, 1, 908, 21, 908, 837, 838, 837, 837, 200, 200, 839, 202, 837, 16, 16, 200, 837, 910, 200, 837, 200, 837, 910, 837, 200, 16, 1, 840, 38, 840, 837, 201, 837, 837, 834, 200, 202, 837, 16, 16, 200, 837, 911, 200, 837, 200, 837, 911, 837, 200, 16, 1, 840, 38, 840, 837, 201, 837, 837, 834, 200, 202, 837, 16, 16, 200, 837, 912, 200, 837, 200, 837, 912, 837, 200, 16, 1, 840, 38, 840, 837, 201, 837, 837, 834, 200, 202, 837, 16, 16, 200, 837, 913, 200, 837, 200, 837, 913, 837, 200, 16, 1, 840, 38, 840, 837, 201, 837, 837, 834, 200, 202, 837, 16, 16, 200, 837, 914, 200, 837, 200, 837, 914, 837, 200, 16, 1, 840, 38, 840, 837, 201, 837, 837, 834, 200, 202, 837, 16, 16, 200, 837, 915, 200, 837, 200, 837, 915, 837, 200, 16, 1, 840, 38, 840, 837, 201, 837, 837, 834, 200, 202, 837, 16, 16, 200, 837, 916, 200, 837, 200, 837, 916, 837, 200, 16, 1, 840, 38, 840, 837, 201, 837, 837, 834, 200, 202, 837, 16, 16, 200, 837, 917, 200, 837, 200, 837, 917, 837, 200, 16, 1, 918, 132, 918, 201, 919, 202, 16, 16, 200, 16, 1, 832, 38, 832, 833, 201, 833, 833, 834, 200, 835, 920, 202, 920, 833, 16, 16, 200, 833, 200, 833, 200, 833, 200, 16, 1, 832, 38, 832, 833, 201, 833, 833, 834, 200, 835, 921, 202, 921, 833, 16, 16, 200, 833, 200, 833, 200, 833, 200, 16, 1, 832, 38, 832, 833, 201, 833, 833, 834, 200, 835, 922, 202, 922, 833, 16, 16, 200, 833, 200, 833, 200, 833, 200, 16, 1, 923, 38, 923, 833, 201, 833, 833, 834, 200, 924, 202, 833, 16, 16, 200, 833, 200, 833, 200, 833, 200, 16, 1, 925, 21, 925, 201, 823, 924, 202, 16, 16, 200, 16, 1, 926, 21, 926, 837, 927, 837, 837, 200, 200, 839, 202, 837, 16, 16, 200, 837, 200, 837, 200, 837, 200, 16, 1, 928, 204, 928, 143, 929, 144, 16, 16, 142, 16, 1, 832, 38, 832, 833, 201, 833, 833, 834, 200, 835, 930, 202, 930, 833, 16, 16, 200, 833, 200, 833, 200, 833, 200, 16, 1, 832, 38, 832, 833, 201, 833, 833, 834, 200, 835, 931, 202, 931, 833, 16, 16, 200, 833, 200, 833, 200, 833, 200, 16, 1, 832, 38, 832, 833, 201, 833, 833, 834, 200, 835, 932, 202, 932, 833, 16, 16, 200, 833, 200, 833, 200, 833, 200, 16, 1, 832, 38, 832, 833, 201, 833, 833, 834, 200, 835, 933, 202, 933, 833, 16, 16, 200, 833, 200, 833, 200, 833, 200, 16, 1, 832, 38, 832, 833, 201, 833, 833, 834, 200, 835, 934, 202, 934, 833, 16, 16, 200, 833, 200, 833, 200, 833, 200, 16, 1, 935, 38, 935, 833, 201, 833, 833, 834, 200, 936, 202, 833, 16, 16, 200, 833, 200, 833, 200, 833, 200, 16, 1, 937, 21, 937, 201, 823, 936, 202, 16, 16, 200, 16, 1, 938, 21, 938, 837, 939, 837, 837, 200, 200, 839, 202, 837, 16, 16, 200, 837, 200, 837, 200, 837, 200, 16, 1, 940, 204, 940, 159, 941, 160, 16, 16, 158, 16, 1, 832, 38, 832, 833, 201, 833, 833, 834, 200, 835, 942, 202, 942, 833, 16, 16, 200, 833, 200, 833, 200, 833, 200, 16, 1, 832, 38, 832, 833, 201, 833, 833, 834, 200, 835, 943, 202, 943, 833, 16, 16, 200, 833, 200, 833, 200, 833, 200, 16, 1, 944, 38, 944, 833, 201, 833, 833, 834, 200, 945, 202, 833, 16, 16, 200, 833, 200, 833, 200, 833, 200, 16, 1, 946, 21, 946, 201, 823, 945, 202, 16, 16, 200, 16, 1, 945, 21, 945, 947, 838, 947, 947, 200, 200, 839, 202, 947, 16, 16, 200, 947, 200, 947, 200, 947, 200, 16, 1, 948, 171, 948, 949, 201, 949, 949, 950, 200, 202, 949, 16, 16, 200, 949, 200, 949, 200, 949, 200, 16, 1, 832, 38, 832, 833, 201, 833, 833, 834, 200, 835, 951, 202, 951, 833, 16, 16, 200, 833, 200, 833, 200, 833, 200, 16, 1, 832, 38, 832, 833, 201, 833, 833, 834, 200, 835, 952, 953, 202, 952, 953, 833, 16, 16, 200, 833, 200, 833, 200, 833, 200, 16, 1, 832, 38, 832, 833, 201, 833, 833, 834, 200, 835, 954, 202, 954, 833, 16, 16, 200, 833, 200, 833, 200, 833, 200, 16, 1, 832, 38, 832, 833, 201, 833, 833, 834, 200, 835, 955, 202, 955, 833, 16, 16, 200, 833, 200, 833, 200, 833, 200, 16, 1, 956, 38, 956, 833, 201, 833, 833, 834, 200, 957, 202, 833, 16, 16, 200, 833, 200, 833, 200, 833, 200, 16, 1, 958, 21, 958, 201, 823, 957, 202, 16, 16, 200, 16, 1, 959, 21, 959, 837, 960, 837, 837, 200, 200, 839, 202, 837, 16, 16, 200, 837, 200, 837, 200, 837, 200, 16, 1, 961, 204, 961, 185, 962, 186, 16, 16, 184, 16, 1, 832, 38, 832, 833, 201, 833, 833, 834, 200, 835, 963, 202, 963, 833, 16, 16, 200, 833, 200, 833, 200, 833, 200, 16, 1, 832, 38, 832, 833, 201, 833, 833, 834, 200, 835, 964, 202, 964, 833, 16, 16, 200, 833, 200, 833, 200, 833, 200, 16, 1, 832, 38, 832, 833, 201, 833, 833, 834, 200, 835, 965, 202, 965, 833, 16, 16, 200, 833, 200, 833, 200, 833, 200, 16, 1, 832, 38, 832, 833, 201, 833, 833, 834, 200, 835, 966, 202, 966, 833, 16, 16, 200, 833, 200, 833, 200, 833, 200, 16, 1, 832, 38, 832, 833, 201, 833, 833, 834, 200, 835, 967, 202, 967, 833, 16, 16, 200, 833, 200, 833, 200, 833, 200, 16, 1, 968, 38, 968, 833, 201, 833, 833, 834, 200, 969, 202, 833, 16, 16, 200, 833, 200, 833, 200, 833, 200, 16, 1, 970, 21, 970, 201, 823, 969, 202, 16, 16, 200, 16, 1, 971, 21, 971, 837, 972, 837, 837, 200, 200, 839, 202, 837, 16, 16, 200, 837, 200, 837, 200, 837, 200, 16, 1, 973, 204, 973, 201, 974, 202, 16, 16, 200, 16, 1, 832, 38, 832, 833, 201, 833, 833, 834, 200, 835, 975, 976, 202, 975, 976, 833, 16, 16, 200, 833, 200, 833, 200, 833, 200, 16, 1, 832, 38, 832, 833, 201, 833, 833, 834, 200, 835, 977, 202, 977, 833, 16, 16, 200, 833, 200, 833, 200, 833, 200, 16, 1, 978, 38, 978, 833, 201, 833, 833, 834, 200, 979, 202, 833, 16, 16, 200, 833, 200, 833, 200, 833, 200, 16, 1, 980, 21, 980, 201, 823, 979, 202, 16, 16, 200, 16, 1, 979, 21, 979, 837, 981, 837, 837, 200, 200, 839, 202, 837, 16, 16, 200, 837, 200, 837, 200, 837, 200, 16, 1, 982, 204, 982, 215, 983, 216, 213, 213, 214, 213, 1, 984, 21, 984, 218, 985, 220, 217, 217, 219, 217, 1, 985, 21, 985, 986, 218, 986, 986, 219, 219, 987, 988, 989, 990, 991, 992, 993, 220, 987, 988, 989, 990, 991, 992, 993, 986, 217, 217, 219, 986, 219, 986, 219, 986, 219, 217, 1, 994, 38, 994, 995, 218, 995, 995, 996, 219, 997, 220, 995, 217, 217, 219, 995, 219, 995, 219, 995, 219, 217, 1, 998, 21, 998, 218, 985, 997, 220, 217, 217, 219, 217, 1, 997, 21, 997, 999, 221, 999, 999, 219, 219, 1000, 220, 999, 217, 217, 219, 999, 219, 999, 219, 999, 219, 217, 1, 1001, 38, 1001, 999, 218, 999, 999, 996, 219, 220, 999, 217, 217, 219, 999, 219, 999, 219, 999, 219, 217, 1, 219, 21, 218, 1003, 220, 217, 217, 219, 1002, 219, 1002, 219, 1002, 219, 217, 1, 219, 21, 218, 1005, 220, 1006, 217, 217, 219, 1004, 219, 1004, 219, 1004, 219, 217, 1, 219, 21, 218, 1005, 220, 1006, 217, 217, 219, 1007, 219, 1007, 219, 1007, 219, 217, 1, 219, 21, 218, 1005, 220, 1006, 217, 217, 219, 1008, 219, 1008, 219, 1008, 219, 217, 1, 219, 21, 218, 1005, 220, 1006, 217, 217, 219, 217, 1, 219, 21, 218, 1010, 220, 217, 217, 219, 1009, 219, 1002, 219, 1002, 219, 217, 1, 219, 21, 218, 1011, 1005, 220, 1006, 217, 217, 219, 1012, 219, 1004, 219, 1004, 219, 217, 1, 219, 21, 218, 220, 217, 217, 219, 1013, 219, 217, 1, 219, 21, 218, 1014, 220, 217, 217, 219, 1015, 219, 217, 1, 219, 21, 218, 220, 217, 217, 219, 1016, 219, 217, 1, 219, 21, 218, 1017, 220, 217, 217, 219, 1018, 219, 217, 1, 219, 21, 218, 220, 217, 217, 219, 1019, 219, 217, 1, 219, 21, 218, 220, 1006, 217, 217, 219, 1020, 219, 217, 1, 219, 21, 218, 220, 1006, 217, 217, 219, 1021, 219, 217, 1, 219, 21, 218, 220, 1006, 217, 217, 219, 217, 1, 1001, 38, 1001, 218, 996, 220, 217, 217, 219, 217, 1, 219, 21, 218, 1017, 220, 217, 217, 219, 1022, 219, 217, 1, 219, 21, 218, 1017, 220, 217, 217, 219, 217, 1, 219, 21, 218, 1014, 220, 217, 217, 219, 1023, 219, 217, 1, 219, 21, 218, 1014, 220, 217, 217, 219, 217, 1, 219, 21, 218, 1011, 1005, 220, 1006, 217, 217, 219, 1024, 219, 1007, 219, 1007, 219, 217, 1, 219, 21, 218, 1011, 1005, 220, 1006, 217, 217, 219, 1008, 219, 1008, 219, 1008, 219, 217, 1, 219, 21, 218, 1026, 220, 1006, 217, 217, 219, 1025, 219, 1025, 219, 1025, 219, 217, 1, 219, 21, 218, 1028, 220, 1006, 217, 217, 219, 1027, 219, 1027, 219, 1027, 219, 217, 1, 219, 21, 218, 1028, 220, 1006, 217, 217, 219, 1029, 219, 1029, 219, 1029, 219, 217, 1, 219, 21, 218, 1028, 220, 1006, 217, 217, 219, 1030, 219, 1030, 219, 1030, 219, 217, 1, 219, 21, 218, 1028, 220, 1006, 217, 217, 219, 217, 1, 219, 21, 218, 220, 217, 217, 219, 1031, 219, 1025, 219, 1025, 219, 217, 1, 219, 21, 218, 1011, 1028, 220, 1006, 217, 217, 219, 1032, 219, 1027, 219, 1027, 219, 217, 1, 219, 21, 218, 1011, 1028, 220, 1006, 217, 217, 219, 1033, 219, 1029, 219, 1029, 219, 217, 1, 219, 21, 218, 1011, 1028, 220, 1006, 217, 217, 219, 1030, 219, 1030, 219, 1030, 219, 217, 1, 219, 21, 218, 220, 217, 217, 219, 1034, 219, 217, 1, 219, 21, 218, 1011, 220, 217, 217, 219, 1035, 219, 217, 1, 219, 21, 218, 1011, 220, 217, 217, 219, 1036, 219, 217, 1, 219, 21, 218, 1011, 220, 217, 217, 219, 217, 1, 219, 21, 218, 1010, 220, 217, 217, 219, 217, 1, 994, 38, 994, 995, 218, 995, 995, 996, 219, 997, 1037, 220, 1037, 995, 217, 217, 219, 995, 219, 995, 219, 995, 219, 217, 1, 994, 38, 994, 995, 218, 995, 995, 996, 219, 997, 1038, 220, 1038, 995, 217, 217, 219, 995, 219, 995, 219, 995, 219, 217, 1, 994, 38, 994, 995, 218, 995, 995, 996, 219, 997, 1039, 220, 1039, 995, 217, 217, 219, 995, 219, 995, 219, 995, 219, 217, 1, 994, 38, 994, 995, 218, 995, 995, 996, 219, 997, 1040, 220, 1040, 995, 217, 217, 219, 995, 219, 995, 219, 995, 219, 217, 1, 994, 38, 994, 995, 218, 995, 995, 996, 219, 997, 1041, 220, 1041, 995, 217, 217, 219, 995, 219, 995, 219, 995, 219, 217, 1, 994, 38, 994, 995, 218, 995, 995, 996, 219, 997, 1042, 220, 1042, 995, 217, 217, 219, 995, 219, 995, 219, 995, 219, 217, 1, 994, 38, 994, 995, 218, 995, 995, 996, 219, 997, 1043, 220, 1043, 995, 217, 217, 219, 995, 219, 995, 219, 995, 219, 217, 1, 994, 38, 994, 995, 218, 995, 995, 996, 219, 997, 1044, 220, 1044, 995, 217, 217, 219, 995, 219, 995, 219, 995, 219, 217, 1, 1045, 38, 1045, 995, 218, 995, 995, 996, 219, 1046, 220, 995, 217, 217, 219, 995, 219, 995, 219, 995, 219, 217, 1, 1047, 21, 1047, 218, 985, 1046, 220, 217, 217, 219, 217, 1, 1046, 21, 1046, 1048, 221, 1048, 1048, 219, 219, 1000, 220, 1048, 217, 217, 219, 1048, 219, 1048, 219, 1048, 219, 217, 1, 1049, 99, 1049, 1050, 218, 1050, 1050, 1051, 219, 220, 1050, 217, 217, 219, 1050, 219, 1050, 219, 1050, 219, 217, 1, 994, 38, 994, 995, 218, 995, 995, 996, 219, 997, 1052, 220, 1052, 995, 217, 217, 219, 995, 219, 995, 219, 995, 219, 217, 1, 994, 38, 994, 995, 218, 995, 995, 996, 219, 997, 1053, 220, 1053, 995, 217, 217, 219, 995, 219, 995, 219, 995, 219, 217, 1, 994, 38, 994, 995, 218, 995, 995, 996, 219, 997, 1054, 220, 1054, 995, 217, 217, 219, 995, 219, 995, 219, 995, 219, 217, 1, 994, 38, 994, 995, 218, 995, 995, 996, 219, 997, 1055, 220, 1055, 995, 217, 217, 219, 995, 219, 995, 219, 995, 219, 217, 1, 994, 38, 994, 995, 218, 995, 995, 996, 219, 997, 1056, 220, 1056, 995, 217, 217, 219, 995, 219, 995, 219, 995, 219, 217, 1, 1057, 38, 1057, 995, 218, 995, 995, 996, 219, 1058, 220, 995, 217, 217, 219, 995, 219, 995, 219, 995, 219, 217, 1, 1059, 21, 1059, 218, 985, 1058, 220, 217, 217, 219, 217, 1, 1060, 21, 1060, 999, 1061, 999, 999, 219, 219, 1000, 220, 999, 217, 217, 219, 999, 219, 999, 219, 999, 219, 217, 1, 994, 38, 994, 995, 218, 995, 995, 996, 219, 997, 1062, 1063, 220, 1062, 1063, 995, 217, 217, 219, 995, 219, 995, 219, 995, 219, 217, 1, 1064, 38, 1064, 995, 218, 995, 995, 996, 219, 1065, 220, 995, 217, 217, 219, 995, 219, 995, 219, 995, 219, 217, 1, 1066, 21, 1066, 218, 985, 1065, 220, 217, 217, 219, 217, 1, 1065, 21, 1065, 999, 221, 999, 999, 219, 219, 1000, 220, 999, 217, 217, 219, 999, 1067, 219, 999, 219, 999, 1067, 999, 219, 217, 1, 1001, 38, 1001, 999, 218, 999, 999, 996, 219, 220, 999, 217, 217, 219, 999, 1068, 219, 999, 219, 999, 1068, 999, 219, 217, 1, 1001, 38, 1001, 999, 218, 999, 999, 996, 219, 220, 999, 217, 217, 219, 999, 1069, 219, 999, 219, 999, 1069, 999, 219, 217, 1, 1001, 38, 1001, 999, 218, 999, 999, 996, 219, 220, 999, 217, 217, 219, 999, 1070, 219, 999, 219, 999, 1070, 999, 219, 217, 1, 1001, 38, 1001, 999, 218, 999, 999, 996, 219, 220, 999, 217, 217, 219, 999, 1071, 219, 999, 219, 999, 1071, 999, 219, 217, 1, 1001, 38, 1001, 999, 218, 999, 999, 996, 219, 220, 999, 217, 217, 219, 999, 1072, 219, 999, 219, 999, 1072, 999, 219, 217, 1, 1001, 38, 1001, 999, 218, 999, 999, 996, 219, 220, 999, 217, 217, 219, 999, 1073, 219, 999, 219, 999, 1073, 999, 219, 217, 1, 1001, 38, 1001, 999, 218, 999, 999, 996, 219, 220, 999, 217, 217, 219, 999, 1074, 219, 999, 219, 999, 1074, 999, 219, 217, 1, 1075, 132, 1075, 218, 1076, 220, 217, 217, 219, 217, 1, 994, 38, 994, 995, 218, 995, 995, 996, 219, 997, 1077, 220, 1077, 995, 217, 217, 219, 995, 219, 995, 219, 995, 219, 217, 1, 994, 38, 994, 995, 218, 995, 995, 996, 219, 997, 1078, 220, 1078, 995, 217, 217, 219, 995, 219, 995, 219, 995, 219, 217, 1, 994, 38, 994, 995, 218, 995, 995, 996, 219, 997, 1079, 220, 1079, 995, 217, 217, 219, 995, 219, 995, 219, 995, 219, 217, 1, 1080, 38, 1080, 995, 218, 995, 995, 996, 219, 1081, 220, 995, 217, 217, 219, 995, 219, 995, 219, 995, 219, 217, 1, 1082, 21, 1082, 218, 985, 1081, 220, 217, 217, 219, 217, 1, 1083, 21, 1083, 999, 1084, 999, 999, 219, 219, 1000, 220, 999, 217, 217, 219, 999, 219, 999, 219, 999, 219, 217, 1, 994, 38, 994, 995, 218, 995, 995, 996, 219, 997, 1085, 220, 1085, 995, 217, 217, 219, 995, 219, 995, 219, 995, 219, 217, 1, 994, 38, 994, 995, 218, 995, 995, 996, 219, 997, 1086, 220, 1086, 995, 217, 217, 219, 995, 219, 995, 219, 995, 219, 217, 1, 994, 38, 994, 995, 218, 995, 995, 996, 219, 997, 1087, 220, 1087, 995, 217, 217, 219, 995, 219, 995, 219, 995, 219, 217, 1, 994, 38, 994, 995, 218, 995, 995, 996, 219, 997, 1088, 220, 1088, 995, 217, 217, 219, 995, 219, 995, 219, 995, 219, 217, 1, 994, 38, 994, 995, 218, 995, 995, 996, 219, 997, 1089, 220, 1089, 995, 217, 217, 219, 995, 219, 995, 219, 995, 219, 217, 1, 1090, 38, 1090, 995, 218, 995, 995, 996, 219, 1091, 220, 995, 217, 217, 219, 995, 219, 995, 219, 995, 219, 217, 1, 1092, 21, 1092, 218, 985, 1091, 220, 217, 217, 219, 217, 1, 1093, 21, 1093, 999, 1094, 999, 999, 219, 219, 1000, 220, 999, 217, 217, 219, 999, 219, 999, 219, 999, 219, 217, 1, 994, 38, 994, 995, 218, 995, 995, 996, 219, 997, 1095, 220, 1095, 995, 217, 217, 219, 995, 219, 995, 219, 995, 219, 217, 1, 994, 38, 994, 995, 218, 995, 995, 996, 219, 997, 1096, 220, 1096, 995, 217, 217, 219, 995, 219, 995, 219, 995, 219, 217, 1, 1097, 38, 1097, 995, 218, 995, 995, 996, 219, 1098, 220, 995, 217, 217, 219, 995, 219, 995, 219, 995, 219, 217, 1, 1099, 21, 1099, 218, 985, 1098, 220, 217, 217, 219, 217, 1, 1098, 21, 1098, 1100, 221, 1100, 1100, 219, 219, 1000, 220, 1100, 217, 217, 219, 1100, 219, 1100, 219, 1100, 219, 217, 1, 1101, 171, 1101, 1102, 218, 1102, 1102, 1103, 219, 220, 1102, 217, 217, 219, 1102, 219, 1102, 219, 1102, 219, 217, 1, 994, 38, 994, 995, 218, 995, 995, 996, 219, 997, 1104, 220, 1104, 995, 217, 217, 219, 995, 219, 995, 219, 995, 219, 217, 1, 994, 38, 994, 995, 218, 995, 995, 996, 219, 997, 1105, 1106, 220, 1105, 1106, 995, 217, 217, 219, 995, 219, 995, 219, 995, 219, 217, 1, 994, 38, 994, 995, 218, 995, 995, 996, 219, 997, 1107, 220, 1107, 995, 217, 217, 219, 995, 219, 995, 219, 995, 219, 217, 1, 994, 38, 994, 995, 218, 995, 995, 996, 219, 997, 1108, 220, 1108, 995, 217, 217, 219, 995, 219, 995, 219, 995, 219, 217, 1, 1109, 38, 1109, 995, 218, 995, 995, 996, 219, 1110, 220, 995, 217, 217, 219, 995, 219, 995, 219, 995, 219, 217, 1, 1111, 21, 1111, 218, 985, 1110, 220, 217, 217, 219, 217, 1, 1112, 21, 1112, 999, 1113, 999, 999, 219, 219, 1000, 220, 999, 217, 217, 219, 999, 219, 999, 219, 999, 219, 217, 1, 994, 38, 994, 995, 218, 995, 995, 996, 219, 997, 1114, 220, 1114, 995, 217, 217, 219, 995, 219, 995, 219, 995, 219, 217, 1, 994, 38, 994, 995, 218, 995, 995, 996, 219, 997, 1115, 220, 1115, 995, 217, 217, 219, 995, 219, 995, 219, 995, 219, 217, 1, 994, 38, 994, 995, 218, 995, 995, 996, 219, 997, 1116, 220, 1116, 995, 217, 217, 219, 995, 219, 995, 219, 995, 219, 217, 1, 994, 38, 994, 995, 218, 995, 995, 996, 219, 997, 1117, 220, 1117, 995, 217, 217, 219, 995, 219, 995, 219, 995, 219, 217, 1, 994, 38, 994, 995, 218, 995, 995, 996, 219, 997, 1118, 220, 1118, 995, 217, 217, 219, 995, 219, 995, 219, 995, 219, 217, 1, 1119, 38, 1119, 995, 218, 995, 995, 996, 219, 1120, 220, 995, 217, 217, 219, 995, 219, 995, 219, 995, 219, 217, 1, 1121, 21, 1121, 218, 985, 1120, 220, 217, 217, 219, 217, 1, 1122, 21, 1122, 999, 1123, 999, 999, 219, 219, 1000, 220, 999, 217, 217, 219, 999, 219, 999, 219, 999, 219, 217, 1, 994, 38, 994, 995, 218, 995, 995, 996, 219, 997, 1124, 1125, 220, 1124, 1125, 995, 217, 217, 219, 995, 219, 995, 219, 995, 219, 217, 1, 994, 38, 994, 995, 218, 995, 995, 996, 219, 997, 1126, 220, 1126, 995, 217, 217, 219, 995, 219, 995, 219, 995, 219, 217, 1, 1127, 38, 1127, 995, 218, 995, 995, 996, 219, 1128, 220, 995, 217, 217, 219, 995, 219, 995, 219, 995, 219, 217, 1, 1129, 21, 1129, 218, 985, 1128, 220, 217, 217, 219, 217, 1, 1128, 21, 1128, 999, 218, 999, 999, 219, 219, 1000, 220, 999, 217, 217, 219, 999, 219, 999, 219, 999, 219, 217, 1, 994, 38, 994, 995, 218, 995, 995, 996, 219, 997, 1130, 220, 1130, 995, 217, 217, 219, 995, 219, 995, 219, 995, 219, 217, 1, 994, 38, 994, 995, 218, 995, 995, 996, 219, 997, 1131, 220, 1131, 995, 217, 217, 219, 995, 219, 995, 219, 995, 219, 217, 1, 994, 38, 994, 995, 218, 995, 995, 996, 219, 997, 1132, 220, 1132, 995, 217, 217, 219, 995, 219, 995, 219, 995, 219, 217, 1, 994, 38, 994, 995, 218, 995, 995, 996, 219, 997, 1133, 220, 1133, 995, 217, 217, 219, 995, 219, 995, 219, 995, 219, 217, 1, 994, 38, 994, 995, 218, 995, 995, 996, 219, 997, 1134, 220, 1134, 995, 217, 217, 219, 995, 219, 995, 219, 995, 219, 217, 1, 994, 38, 994, 995, 218, 995, 995, 996, 219, 997, 1135, 220, 1135, 995, 217, 217, 219, 995, 219, 995, 219, 995, 219, 217, 1, 1136, 38, 1136, 995, 218, 995, 995, 996, 219, 1137, 220, 995, 217, 217, 219, 995, 219, 995, 219, 995, 219, 217, 1, 1138, 21, 1138, 218, 985, 1137, 220, 217, 217, 219, 217, 1, 1139, 21, 1139, 999, 1140, 999, 999, 219, 219, 1000, 220, 999, 217, 217, 219, 999, 219, 999, 219, 999, 219, 217, 1, 1141, 21, 1141, 1143, 1144, 1145, 16, 16, 1142, 16, 1, 1142, 21, 1143, 1145, 16, 16, 1142, 16, 1, 1146, 1147, 1146, 1148, 16, 1, 16, 21, 1142, 16, 1, 1144, 21, 1144, 1149, 1143, 1149, 1149, 1142, 1142, 1150, 1151, 1152, 1153, 1154, 1155, 1156, 1145, 1150, 1151, 1152, 1153, 1154, 1155, 1156, 1149, 16, 16, 1142, 1149, 1142, 1149, 1142, 1149, 1142, 16, 1, 1157, 38, 1157, 1158, 1143, 1158, 1158, 1159, 1142, 1160, 1145, 1158, 16, 16, 1142, 1158, 1142, 1158, 1142, 1158, 1142, 16, 1, 1161, 21, 1161, 1143, 1144, 1160, 1145, 16, 16, 1142, 16, 1, 1160, 21, 1160, 1162, 1163, 1162, 1162, 1142, 1142, 1164, 1145, 1162, 16, 16, 1142, 1162, 1142, 1162, 1142, 1162, 1142, 16, 1, 1165, 38, 1165, 1162, 1143, 1162, 1162, 1159, 1142, 1145, 1162, 16, 16, 1142, 1162, 1142, 1162, 1142, 1162, 1142, 16, 1, 1166, 1147, 1166, 51, 1167, 52, 16, 16, 47, 16, 1, 1142, 21, 1143, 1169, 1145, 16, 16, 1142, 1168, 1142, 1168, 1142, 1168, 1142, 16, 1, 1142, 21, 1143, 1171, 1145, 1172, 16, 16, 1142, 1170, 1142, 1170, 1142, 1170, 1142, 16, 1, 1142, 21, 1143, 1171, 1145, 1172, 16, 16, 1142, 1173, 1142, 1173, 1142, 1173, 1142, 16, 1, 1142, 21, 1143, 1171, 1145, 1172, 16, 16, 1142, 1174, 1142, 1174, 1142, 1174, 1142, 16, 1, 1142, 21, 1143, 1171, 1145, 1172, 16, 16, 1142, 16, 1, 1142, 21, 1143, 1176, 1145, 16, 16, 1142, 1175, 1142, 1168, 1142, 1168, 1142, 16, 1, 1142, 21, 1143, 1177, 1171, 1145, 1172, 16, 16, 1142, 1178, 1142, 1170, 1142, 1170, 1142, 16, 1, 1142, 21, 1143, 1145, 16, 16, 1142, 1179, 1142, 16, 1, 1142, 21, 1143, 1180, 1145, 16, 16, 1142, 1181, 1142, 16, 1, 1142, 21, 1143, 1145, 16, 16, 1142, 1182, 1142, 16, 1, 1142, 21, 1143, 1183, 1145, 16, 16, 1142, 1184, 1142, 16, 1, 1142, 21, 1143, 1145, 16, 16, 1142, 1185, 1142, 16, 1, 1142, 21, 1143, 1145, 1172, 16, 16, 1142, 1186, 1142, 16, 1, 1142, 21, 1143, 1145, 1172, 16, 16, 1142, 1187, 1142, 16, 1, 1142, 21, 1143, 1145, 1172, 16, 16, 1142, 16, 1, 1165, 38, 1165, 1143, 1159, 1145, 16, 16, 1142, 16, 1, 1142, 21, 1143, 1183, 1145, 16, 16, 1142, 1188, 1142, 16, 1, 1142, 21, 1143, 1183, 1145, 16, 16, 1142, 16, 1, 1142, 21, 1143, 1180, 1145, 16, 16, 1142, 1189, 1142, 16, 1, 1142, 21, 1143, 1180, 1145, 16, 16, 1142, 16, 1, 1142, 21, 1143, 1177, 1171, 1145, 1172, 16, 16, 1142, 1190, 1142, 1173, 1142, 1173, 1142, 16, 1, 1142, 21, 1143, 1177, 1171, 1145, 1172, 16, 16, 1142, 1174, 1142, 1174, 1142, 1174, 1142, 16, 1, 1142, 21, 1143, 1192, 1145, 1172, 16, 16, 1142, 1191, 1142, 1191, 1142, 1191, 1142, 16, 1, 1142, 21, 1143, 1194, 1145, 1172, 16, 16, 1142, 1193, 1142, 1193, 1142, 1193, 1142, 16, 1, 1142, 21, 1143, 1194, 1145, 1172, 16, 16, 1142, 1195, 1142, 1195, 1142, 1195, 1142, 16, 1, 1142, 21, 1143, 1194, 1145, 1172, 16, 16, 1142, 1196, 1142, 1196, 1142, 1196, 1142, 16, 1, 1142, 21, 1143, 1194, 1145, 1172, 16, 16, 1142, 16, 1, 1142, 21, 1143, 1145, 16, 16, 1142, 1197, 1142, 1191, 1142, 1191, 1142, 16, 1, 1142, 21, 1143, 1177, 1194, 1145, 1172, 16, 16, 1142, 1198, 1142, 1193, 1142, 1193, 1142, 16, 1, 1142, 21, 1143, 1177, 1194, 1145, 1172, 16, 16, 1142, 1199, 1142, 1195, 1142, 1195, 1142, 16, 1, 1142, 21, 1143, 1177, 1194, 1145, 1172, 16, 16, 1142, 1196, 1142, 1196, 1142, 1196, 1142, 16, 1, 1142, 21, 1143, 1145, 16, 16, 1142, 1200, 1142, 16, 1, 1142, 21, 1143, 1177, 1145, 16, 16, 1142, 1201, 1142, 16, 1, 1142, 21, 1143, 1177, 1145, 16, 16, 1142, 1202, 1142, 16, 1, 1142, 21, 1143, 1177, 1145, 16, 16, 1142, 16, 1, 1142, 21, 1143, 1176, 1145, 16, 16, 1142, 16, 1, 1157, 38, 1157, 1158, 1143, 1158, 1158, 1159, 1142, 1160, 1203, 1145, 1203, 1158, 16, 16, 1142, 1158, 1142, 1158, 1142, 1158, 1142, 16, 1, 1157, 38, 1157, 1158, 1143, 1158, 1158, 1159, 1142, 1160, 1204, 1145, 1204, 1158, 16, 16, 1142, 1158, 1142, 1158, 1142, 1158, 1142, 16, 1, 1157, 38, 1157, 1158, 1143, 1158, 1158, 1159, 1142, 1160, 1205, 1145, 1205, 1158, 16, 16, 1142, 1158, 1142, 1158, 1142, 1158, 1142, 16, 1, 1157, 38, 1157, 1158, 1143, 1158, 1158, 1159, 1142, 1160, 1206, 1145, 1206, 1158, 16, 16, 1142, 1158, 1142, 1158, 1142, 1158, 1142, 16, 1, 1157, 38, 1157, 1158, 1143, 1158, 1158, 1159, 1142, 1160, 1207, 1145, 1207, 1158, 16, 16, 1142, 1158, 1142, 1158, 1142, 1158, 1142, 16, 1, 1157, 38, 1157, 1158, 1143, 1158, 1158, 1159, 1142, 1160, 1208, 1145, 1208, 1158, 16, 16, 1142, 1158, 1142, 1158, 1142, 1158, 1142, 16, 1, 1157, 38, 1157, 1158, 1143, 1158, 1158, 1159, 1142, 1160, 1209, 1145, 1209, 1158, 16, 16, 1142, 1158, 1142, 1158, 1142, 1158, 1142, 16, 1, 1157, 38, 1157, 1158, 1143, 1158, 1158, 1159, 1142, 1160, 1210, 1145, 1210, 1158, 16, 16, 1142, 1158, 1142, 1158, 1142, 1158, 1142, 16, 1, 1211, 38, 1211, 1158, 1143, 1158, 1158, 1159, 1142, 1212, 1145, 1158, 16, 16, 1142, 1158, 1142, 1158, 1142, 1158, 1142, 16, 1, 1213, 21, 1213, 1143, 1144, 1212, 1145, 16, 16, 1142, 16, 1, 1212, 21, 1212, 1214, 1163, 1214, 1214, 1142, 1142, 1164, 1145, 1214, 16, 16, 1142, 1214, 1142, 1214, 1142, 1214, 1142, 16, 1, 1215, 99, 1215, 1216, 1143, 1216, 1216, 1217, 1142, 1145, 1216, 16, 16, 1142, 1216, 1142, 1216, 1142, 1216, 1142, 16, 1, 1157, 38, 1157, 1158, 1143, 1158, 1158, 1159, 1142, 1160, 1218, 1145, 1218, 1158, 16, 16, 1142, 1158, 1142, 1158, 1142, 1158, 1142, 16, 1, 1157, 38, 1157, 1158, 1143, 1158, 1158, 1159, 1142, 1160, 1219, 1145, 1219, 1158, 16, 16, 1142, 1158, 1142, 1158, 1142, 1158, 1142, 16, 1, 1157, 38, 1157, 1158, 1143, 1158, 1158, 1159, 1142, 1160, 1220, 1145, 1220, 1158, 16, 16, 1142, 1158, 1142, 1158, 1142, 1158, 1142, 16, 1, 1157, 38, 1157, 1158, 1143, 1158, 1158, 1159, 1142, 1160, 1221, 1145, 1221, 1158, 16, 16, 1142, 1158, 1142, 1158, 1142, 1158, 1142, 16, 1, 1157, 38, 1157, 1158, 1143, 1158, 1158, 1159, 1142, 1160, 1222, 1145, 1222, 1158, 16, 16, 1142, 1158, 1142, 1158, 1142, 1158, 1142, 16, 1, 1223, 38, 1223, 1158, 1143, 1158, 1158, 1159, 1142, 1224, 1145, 1158, 16, 16, 1142, 1158, 1142, 1158, 1142, 1158, 1142, 16, 1, 1225, 21, 1225, 1143, 1144, 1224, 1145, 16, 16, 1142, 16, 1, 1226, 21, 1226, 1162, 1227, 1162, 1162, 1142, 1142, 1164, 1145, 1162, 16, 16, 1142, 1162, 1142, 1162, 1142, 1162, 1142, 16, 1, 1228, 1147, 1228, 113, 1229, 114, 16, 16, 112, 16, 1, 1157, 38, 1157, 1158, 1143, 1158, 1158, 1159, 1142, 1160, 1230, 1231, 1145, 1230, 1231, 1158, 16, 16, 1142, 1158, 1142, 1158, 1142, 1158, 1142, 16, 1, 1232, 38, 1232, 1158, 1143, 1158, 1158, 1159, 1142, 1233, 1145, 1158, 16, 16, 1142, 1158, 1142, 1158, 1142, 1158, 1142, 16, 1, 1234, 21, 1234, 1143, 1144, 1233, 1145, 16, 16, 1142, 16, 1, 1233, 21, 1233, 1162, 1163, 1162, 1162, 1142, 1142, 1164, 1145, 1162, 16, 16, 1142, 1162, 1235, 1142, 1162, 1142, 1162, 1235, 1162, 1142, 16, 1, 1165, 38, 1165, 1162, 1143, 1162, 1162, 1159, 1142, 1145, 1162, 16, 16, 1142, 1162, 1236, 1142, 1162, 1142, 1162, 1236, 1162, 1142, 16, 1, 1165, 38, 1165, 1162, 1143, 1162, 1162, 1159, 1142, 1145, 1162, 16, 16, 1142, 1162, 1237, 1142, 1162, 1142, 1162, 1237, 1162, 1142, 16, 1, 1165, 38, 1165, 1162, 1143, 1162, 1162, 1159, 1142, 1145, 1162, 16, 16, 1142, 1162, 1238, 1142, 1162, 1142, 1162, 1238, 1162, 1142, 16, 1, 1165, 38, 1165, 1162, 1143, 1162, 1162, 1159, 1142, 1145, 1162, 16, 16, 1142, 1162, 1239, 1142, 1162, 1142, 1162, 1239, 1162, 1142, 16, 1, 1165, 38, 1165, 1162, 1143, 1162, 1162, 1159, 1142, 1145, 1162, 16, 16, 1142, 1162, 1240, 1142, 1162, 1142, 1162, 1240, 1162, 1142, 16, 1, 1165, 38, 1165, 1162, 1143, 1162, 1162, 1159, 1142, 1145, 1162, 16, 16, 1142, 1162, 1241, 1142, 1162, 1142, 1162, 1241, 1162, 1142, 16, 1, 1165, 38, 1165, 1162, 1143, 1162, 1162, 1159, 1142, 1145, 1162, 16, 16, 1142, 1162, 1242, 1142, 1162, 1142, 1162, 1242, 1162, 1142, 16, 1, 1243, 132, 1243, 1143, 1244, 1145, 16, 16, 1142, 16, 1, 1157, 38, 1157, 1158, 1143, 1158, 1158, 1159, 1142, 1160, 1245, 1145, 1245, 1158, 16, 16, 1142, 1158, 1142, 1158, 1142, 1158, 1142, 16, 1, 1157, 38, 1157, 1158, 1143, 1158, 1158, 1159, 1142, 1160, 1246, 1145, 1246, 1158, 16, 16, 1142, 1158, 1142, 1158, 1142, 1158, 1142, 16, 1, 1157, 38, 1157, 1158, 1143, 1158, 1158, 1159, 1142, 1160, 1247, 1145, 1247, 1158, 16, 16, 1142, 1158, 1142, 1158, 1142, 1158, 1142, 16, 1, 1248, 38, 1248, 1158, 1143, 1158, 1158, 1159, 1142, 1249, 1145, 1158, 16, 16, 1142, 1158, 1142, 1158, 1142, 1158, 1142, 16, 1, 1250, 21, 1250, 1143, 1144, 1249, 1145, 16, 16, 1142, 16, 1, 1251, 21, 1251, 1162, 1252, 1162, 1162, 1142, 1142, 1164, 1145, 1162, 16, 16, 1142, 1162, 1142, 1162, 1142, 1162, 1142, 16, 1, 1253, 1147, 1253, 143, 1254, 144, 16, 16, 142, 16, 1, 1157, 38, 1157, 1158, 1143, 1158, 1158, 1159, 1142, 1160, 1255, 1145, 1255, 1158, 16, 16, 1142, 1158, 1142, 1158, 1142, 1158, 1142, 16, 1, 1157, 38, 1157, 1158, 1143, 1158, 1158, 1159, 1142, 1160, 1256, 1145, 1256, 1158, 16, 16, 1142, 1158, 1142, 1158, 1142, 1158, 1142, 16, 1, 1157, 38, 1157, 1158, 1143, 1158, 1158, 1159, 1142, 1160, 1257, 1145, 1257, 1158, 16, 16, 1142, 1158, 1142, 1158, 1142, 1158, 1142, 16, 1, 1157, 38, 1157, 1158, 1143, 1158, 1158, 1159, 1142, 1160, 1258, 1145, 1258, 1158, 16, 16, 1142, 1158, 1142, 1158, 1142, 1158, 1142, 16, 1, 1157, 38, 1157, 1158, 1143, 1158, 1158, 1159, 1142, 1160, 1259, 1145, 1259, 1158, 16, 16, 1142, 1158, 1142, 1158, 1142, 1158, 1142, 16, 1, 1260, 38, 1260, 1158, 1143, 1158, 1158, 1159, 1142, 1261, 1145, 1158, 16, 16, 1142, 1158, 1142, 1158, 1142, 1158, 1142, 16, 1, 1262, 21, 1262, 1143, 1144, 1261, 1145, 16, 16, 1142, 16, 1, 1263, 21, 1263, 1162, 1264, 1162, 1162, 1142, 1142, 1164, 1145, 1162, 16, 16, 1142, 1162, 1142, 1162, 1142, 1162, 1142, 16, 1, 1265, 1147, 1265, 159, 1266, 160, 16, 16, 158, 16, 1, 1157, 38, 1157, 1158, 1143, 1158, 1158, 1159, 1142, 1160, 1267, 1145, 1267, 1158, 16, 16, 1142, 1158, 1142, 1158, 1142, 1158, 1142, 16, 1, 1157, 38, 1157, 1158, 1143, 1158, 1158, 1159, 1142, 1160, 1268, 1145, 1268, 1158, 16, 16, 1142, 1158, 1142, 1158, 1142, 1158, 1142, 16, 1, 1269, 38, 1269, 1158, 1143, 1158, 1158, 1159, 1142, 1270, 1145, 1158, 16, 16, 1142, 1158, 1142, 1158, 1142, 1158, 1142, 16, 1, 1271, 21, 1271, 1143, 1144, 1270, 1145, 16, 16, 1142, 16, 1, 1270, 21, 1270, 1272, 1163, 1272, 1272, 1142, 1142, 1164, 1145, 1272, 16, 16, 1142, 1272, 1142, 1272, 1142, 1272, 1142, 16, 1, 1273, 171, 1273, 1274, 1143, 1274, 1274, 1275, 1142, 1145, 1274, 16, 16, 1142, 1274, 1142, 1274, 1142, 1274, 1142, 16, 1, 1157, 38, 1157, 1158, 1143, 1158, 1158, 1159, 1142, 1160, 1276, 1145, 1276, 1158, 16, 16, 1142, 1158, 1142, 1158, 1142, 1158, 1142, 16, 1, 1157, 38, 1157, 1158, 1143, 1158, 1158, 1159, 1142, 1160, 1277, 1278, 1145, 1277, 1278, 1158, 16, 16, 1142, 1158, 1142, 1158, 1142, 1158, 1142, 16, 1, 1157, 38, 1157, 1158, 1143, 1158, 1158, 1159, 1142, 1160, 1279, 1145, 1279, 1158, 16, 16, 1142, 1158, 1142, 1158, 1142, 1158, 1142, 16, 1, 1157, 38, 1157, 1158, 1143, 1158, 1158, 1159, 1142, 1160, 1280, 1145, 1280, 1158, 16, 16, 1142, 1158, 1142, 1158, 1142, 1158, 1142, 16, 1, 1281, 38, 1281, 1158, 1143, 1158, 1158, 1159, 1142, 1282, 1145, 1158, 16, 16, 1142, 1158, 1142, 1158, 1142, 1158, 1142, 16, 1, 1283, 21, 1283, 1143, 1144, 1282, 1145, 16, 16, 1142, 16, 1, 1284, 21, 1284, 1162, 1285, 1162, 1162, 1142, 1142, 1164, 1145, 1162, 16, 16, 1142, 1162, 1142, 1162, 1142, 1162, 1142, 16, 1, 1286, 1147, 1286, 185, 1287, 186, 16, 16, 184, 16, 1, 1157, 38, 1157, 1158, 1143, 1158, 1158, 1159, 1142, 1160, 1288, 1145, 1288, 1158, 16, 16, 1142, 1158, 1142, 1158, 1142, 1158, 1142, 16, 1, 1157, 38, 1157, 1158, 1143, 1158, 1158, 1159, 1142, 1160, 1289, 1145, 1289, 1158, 16, 16, 1142, 1158, 1142, 1158, 1142, 1158, 1142, 16, 1, 1157, 38, 1157, 1158, 1143, 1158, 1158, 1159, 1142, 1160, 1290, 1145, 1290, 1158, 16, 16, 1142, 1158, 1142, 1158, 1142, 1158, 1142, 16, 1, 1157, 38, 1157, 1158, 1143, 1158, 1158, 1159, 1142, 1160, 1291, 1145, 1291, 1158, 16, 16, 1142, 1158, 1142, 1158, 1142, 1158, 1142, 16, 1, 1157, 38, 1157, 1158, 1143, 1158, 1158, 1159, 1142, 1160, 1292, 1145, 1292, 1158, 16, 16, 1142, 1158, 1142, 1158, 1142, 1158, 1142, 16, 1, 1293, 38, 1293, 1158, 1143, 1158, 1158, 1159, 1142, 1294, 1145, 1158, 16, 16, 1142, 1158, 1142, 1158, 1142, 1158, 1142, 16, 1, 1295, 21, 1295, 1143, 1144, 1294, 1145, 16, 16, 1142, 16, 1, 1296, 21, 1296, 1162, 1297, 1162, 1162, 1142, 1142, 1164, 1145, 1162, 16, 16, 1142, 1162, 1142, 1162, 1142, 1162, 1142, 16, 1, 1298, 1147, 1298, 201, 1299, 202, 16, 16, 200, 16, 1, 1157, 38, 1157, 1158, 1143, 1158, 1158, 1159, 1142, 1160, 1300, 1301, 1145, 1300, 1301, 1158, 16, 16, 1142, 1158, 1142, 1158, 1142, 1158, 1142, 16, 1, 1157, 38, 1157, 1158, 1143, 1158, 1158, 1159, 1142, 1160, 1302, 1145, 1302, 1158, 16, 16, 1142, 1158, 1142, 1158, 1142, 1158, 1142, 16, 1, 1303, 38, 1303, 1158, 1143, 1158, 1158, 1159, 1142, 1304, 1145, 1158, 16, 16, 1142, 1158, 1142, 1158, 1142, 1158, 1142, 16, 1, 1305, 21, 1305, 1143, 1144, 1304, 1145, 16, 16, 1142, 16, 1, 1304, 21, 1304, 1162, 1306, 1162, 1162, 1142, 1142, 1164, 1145, 1162, 16, 16, 1142, 1162, 1142, 1162, 1142, 1162, 1142, 16, 1, 1307, 1147, 1307, 215, 1308, 216, 213, 213, 214, 213, 1, 1157, 38, 1157, 1158, 1143, 1158, 1158, 1159, 1142, 1160, 1309, 1145, 1309, 1158, 16, 16, 1142, 1158, 1142, 1158, 1142, 1158, 1142, 16, 1, 1157, 38, 1157, 1158, 1143, 1158, 1158, 1159, 1142, 1160, 1310, 1145, 1310, 1158, 16, 16, 1142, 1158, 1142, 1158, 1142, 1158, 1142, 16, 1, 1157, 38, 1157, 1158, 1143, 1158, 1158, 1159, 1142, 1160, 1311, 1145, 1311, 1158, 16, 16, 1142, 1158, 1142, 1158, 1142, 1158, 1142, 16, 1, 1157, 38, 1157, 1158, 1143, 1158, 1158, 1159, 1142, 1160, 1312, 1145, 1312, 1158, 16, 16, 1142, 1158, 1142, 1158, 1142, 1158, 1142, 16, 1, 1157, 38, 1157, 1158, 1143, 1158, 1158, 1159, 1142, 1160, 1313, 1145, 1313, 1158, 16, 16, 1142, 1158, 1142, 1158, 1142, 1158, 1142, 16, 1, 1157, 38, 1157, 1158, 1143, 1158, 1158, 1159, 1142, 1160, 1314, 1145, 1314, 1158, 16, 16, 1142, 1158, 1142, 1158, 1142, 1158, 1142, 16, 1, 1315, 38, 1315, 1158, 1143, 1158, 1158, 1159, 1142, 1316, 1145, 1158, 16, 16, 1142, 1158, 1142, 1158, 1142, 1158, 1142, 16, 1, 1317, 21, 1317, 1143, 1144, 1316, 1145, 16, 16, 1142, 16, 1, 1318, 21, 1318, 1162, 1319, 1162, 1162, 1142, 1142, 1164, 1145, 1162, 16, 16, 1142, 1162, 1142, 1162, 1142, 1162, 1142, 16, 1, 1320, 1147, 1320, 1143, 1321, 1145, 16, 16, 1142, 16, 1, 832, 38, 832, 833, 201, 833, 833, 834, 200, 835, 1322, 202, 1322, 833, 16, 16, 200, 833, 200, 833, 200, 833, 200, 16, 1, 832, 38, 832, 833, 201, 833, 833, 834, 200, 835, 1323, 202, 1323, 833, 16, 16, 200, 833, 200, 833, 200, 833, 200, 16, 1, 832, 38, 832, 833, 201, 833, 833, 834, 200, 835, 1324, 202, 1324, 833, 16, 16, 200, 833, 200, 833, 200, 833, 200, 16, 1, 832, 38, 832, 833, 201, 833, 833, 834, 200, 835, 1325, 202, 1325, 833, 16, 16, 200, 833, 200, 833, 200, 833, 200, 16, 1, 832, 38, 832, 833, 201, 833, 833, 834, 200, 835, 1326, 202, 1326, 833, 16, 16, 200, 833, 200, 833, 200, 833, 200, 16, 1, 832, 38, 832, 833, 201, 833, 833, 834, 200, 835, 1327, 202, 1327, 833, 16, 16, 200, 833, 200, 833, 200, 833, 200, 16, 1, 1328, 38, 1328, 833, 201, 833, 833, 834, 200, 1329, 202, 833, 16, 16, 200, 833, 200, 833, 200, 833, 200, 16, 1, 1330, 21, 1330, 201, 823, 1329, 202, 16, 16, 200, 16, 1, 1331, 21, 1331, 837, 1332, 837, 837, 200, 200, 839, 202, 837, 16, 16, 200, 837, 200, 837, 200, 837, 200, 16, 1, 1333, 204, 1333, 1143, 1334, 1145, 16, 16, 1142, 16, 1, 679, 38, 679, 680, 185, 680, 680, 681, 184, 682, 1335, 1336, 186, 1335, 1336, 680, 16, 16, 184, 680, 184, 680, 184, 680, 184, 16, 1, 679, 38, 679, 680, 185, 680, 680, 681, 184, 682, 1337, 186, 1337, 680, 16, 16, 184, 680, 184, 680, 184, 680, 184, 16, 1, 1338, 38, 1338, 680, 185, 680, 680, 681, 184, 1339, 186, 680, 16, 16, 184, 680, 184, 680, 184, 680, 184, 16, 1, 1340, 21, 1340, 185, 670, 1339, 186, 16, 16, 184, 16, 1, 1339, 21, 1339, 684, 1341, 684, 684, 184, 184, 686, 186, 684, 16, 16, 184, 684, 184, 684, 184, 684, 184, 16, 1, 1342, 188, 1342, 215, 1343, 216, 213, 213, 214, 213, 1, 679, 38, 679, 680, 185, 680, 680, 681, 184, 682, 1344, 186, 1344, 680, 16, 16, 184, 680, 184, 680, 184, 680, 184, 16, 1, 679, 38, 679, 680, 185, 680, 680, 681, 184, 682, 1345, 186, 1345, 680, 16, 16, 184, 680, 184, 680, 184, 680, 184, 16, 1, 679, 38, 679, 680, 185, 680, 680, 681, 184, 682, 1346, 186, 1346, 680, 16, 16, 184, 680, 184, 680, 184, 680, 184, 16, 1, 679, 38, 679, 680, 185, 680, 680, 681, 184, 682, 1347, 186, 1347, 680, 16, 16, 184, 680, 184, 680, 184, 680, 184, 16, 1, 679, 38, 679, 680, 185, 680, 680, 681, 184, 682, 1348, 186, 1348, 680, 16, 16, 184, 680, 184, 680, 184, 680, 184, 16, 1, 679, 38, 679, 680, 185, 680, 680, 681, 184, 682, 1349, 186, 1349, 680, 16, 16, 184, 680, 184, 680, 184, 680, 184, 16, 1, 1350, 38, 1350, 680, 185, 680, 680, 681, 184, 1351, 186, 680, 16, 16, 184, 680, 184, 680, 184, 680, 184, 16, 1, 1352, 21, 1352, 185, 670, 1351, 186, 16, 16, 184, 16, 1, 1353, 21, 1353, 684, 1354, 684, 684, 184, 184, 686, 186, 684, 16, 16, 184, 684, 184, 684, 184, 684, 184, 16, 1, 1355, 188, 1355, 1143, 1356, 1145, 16, 16, 1142, 16, 1, 538, 38, 538, 539, 159, 539, 539, 540, 158, 541, 1357, 160, 1357, 539, 16, 16, 158, 539, 158, 539, 158, 539, 158, 16, 1, 538, 38, 538, 539, 159, 539, 539, 540, 158, 541, 1358, 160, 1358, 539, 16, 16, 158, 539, 158, 539, 158, 539, 158, 16, 1, 538, 38, 538, 539, 159, 539, 539, 540, 158, 541, 1359, 160, 1359, 539, 16, 16, 158, 539, 158, 539, 158, 539, 158, 16, 1, 538, 38, 538, 539, 159, 539, 539, 540, 158, 541, 1360, 160, 1360, 539, 16, 16, 158, 539, 158, 539, 158, 539, 158, 16, 1, 538, 38, 538, 539, 159, 539, 539, 540, 158, 541, 1361, 160, 1361, 539, 16, 16, 158, 539, 158, 539, 158, 539, 158, 16, 1, 1362, 38, 1362, 539, 159, 539, 539, 540, 158, 1363, 160, 539, 16, 16, 158, 539, 158, 539, 158, 539, 158, 16, 1, 1364, 21, 1364, 159, 529, 1363, 160, 16, 16, 158, 16, 1, 1365, 21, 1365, 543, 1366, 543, 543, 158, 158, 545, 160, 543, 16, 16, 158, 543, 158, 543, 158, 543, 158, 16, 1, 1367, 162, 1367, 201, 1368, 202, 16, 16, 200, 16, 1, 538, 38, 538, 539, 159, 539, 539, 540, 158, 541, 1369, 1370, 160, 1369, 1370, 539, 16, 16, 158, 539, 158, 539, 158, 539, 158, 16, 1, 538, 38, 538, 539, 159, 539, 539, 540, 158, 541, 1371, 160, 1371, 539, 16, 16, 158, 539, 158, 539, 158, 539, 158, 16, 1, 1372, 38, 1372, 539, 159, 539, 539, 540, 158, 1373, 160, 539, 16, 16, 158, 539, 158, 539, 158, 539, 158, 16, 1, 1374, 21, 1374, 159, 529, 1373, 160, 16, 16, 158, 16, 1, 1373, 21, 1373, 543, 1375, 543, 543, 158, 158, 545, 160, 543, 16, 16, 158, 543, 158, 543, 158, 543, 158, 16, 1, 1376, 162, 1376, 215, 1377, 216, 213, 213, 214, 213, 1, 538, 38, 538, 539, 159, 539, 539, 540, 158, 541, 1378, 160, 1378, 539, 16, 16, 158, 539, 158, 539, 158, 539, 158, 16, 1, 538, 38, 538, 539, 159, 539, 539, 540, 158, 541, 1379, 160, 1379, 539, 16, 16, 158, 539, 158, 539, 158, 539, 158, 16, 1, 538, 38, 538, 539, 159, 539, 539, 540, 158, 541, 1380, 160, 1380, 539, 16, 16, 158, 539, 158, 539, 158, 539, 158, 16, 1, 538, 38, 538, 539, 159, 539, 539, 540, 158, 541, 1381, 160, 1381, 539, 16, 16, 158, 539, 158, 539, 158, 539, 158, 16, 1, 538, 38, 538, 539, 159, 539, 539, 540, 158, 541, 1382, 160, 1382, 539, 16, 16, 158, 539, 158, 539, 158, 539, 158, 16, 1, 538, 38, 538, 539, 159, 539, 539, 540, 158, 541, 1383, 160, 1383, 539, 16, 16, 158, 539, 158, 539, 158, 539, 158, 16, 1, 1384, 38, 1384, 539, 159, 539, 539, 540, 158, 1385, 160, 539, 16, 16, 158, 539, 158, 539, 158, 539, 158, 16, 1, 1386, 21, 1386, 159, 529, 1385, 160, 16, 16, 158, 16, 1, 1387, 21, 1387, 543, 1388, 543, 543, 158, 158, 545, 160, 543, 16, 16, 158, 543, 158, 543, 158, 543, 158, 16, 1, 1389, 162, 1389, 1143, 1390, 1145, 16, 16, 1142, 16, 1, 418, 38, 418, 419, 143, 419, 419, 420, 142, 421, 1391, 144, 1391, 419, 16, 16, 142, 419, 142, 419, 142, 419, 142, 16, 1, 418, 38, 418, 419, 143, 419, 419, 420, 142, 421, 1392, 144, 1392, 419, 16, 16, 142, 419, 142, 419, 142, 419, 142, 16, 1, 1393, 38, 1393, 419, 143, 419, 419, 420, 142, 1394, 144, 419, 16, 16, 142, 419, 142, 419, 142, 419, 142, 16, 1, 1395, 21, 1395, 143, 409, 1394, 144, 16, 16, 142, 16, 1, 1394, 21, 1394, 1396, 424, 1396, 1396, 142, 142, 425, 144, 1396, 16, 16, 142, 1396, 142, 1396, 142, 1396, 142, 16, 1, 1397, 171, 1397, 1398, 143, 1398, 1398, 1399, 142, 144, 1398, 16, 16, 142, 1398, 142, 1398, 142, 1398, 142, 16, 1, 418, 38, 418, 419, 143, 419, 419, 420, 142, 421, 1400, 144, 1400, 419, 16, 16, 142, 419, 142, 419, 142, 419, 142, 16, 1, 418, 38, 418, 419, 143, 419, 419, 420, 142, 421, 1401, 1402, 144, 1401, 1402, 419, 16, 16, 142, 419, 142, 419, 142, 419, 142, 16, 1, 418, 38, 418, 419, 143, 419, 419, 420, 142, 421, 1403, 144, 1403, 419, 16, 16, 142, 419, 142, 419, 142, 419, 142, 16, 1, 418, 38, 418, 419, 143, 419, 419, 420, 142, 421, 1404, 144, 1404, 419, 16, 16, 142, 419, 142, 419, 142, 419, 142, 16, 1, 1405, 38, 1405, 419, 143, 419, 419, 420, 142, 1406, 144, 419, 16, 16, 142, 419, 142, 419, 142, 419, 142, 16, 1, 1407, 21, 1407, 143, 409, 1406, 144, 16, 16, 142, 16, 1, 1408, 21, 1408, 423, 1409, 423, 423, 142, 142, 425, 144, 423, 16, 16, 142, 423, 142, 423, 142, 423, 142, 16, 1, 1410, 146, 1410, 185, 1411, 186, 16, 16, 184, 16, 1, 418, 38, 418, 419, 143, 419, 419, 420, 142, 421, 1412, 144, 1412, 419, 16, 16, 142, 419, 142, 419, 142, 419, 142, 16, 1, 418, 38, 418, 419, 143, 419, 419, 420, 142, 421, 1413, 144, 1413, 419, 16, 16, 142, 419, 142, 419, 142, 419, 142, 16, 1, 418, 38, 418, 419, 143, 419, 419, 420, 142, 421, 1414, 144, 1414, 419, 16, 16, 142, 419, 142, 419, 142, 419, 142, 16, 1, 418, 38, 418, 419, 143, 419, 419, 420, 142, 421, 1415, 144, 1415, 419, 16, 16, 142, 419, 142, 419, 142, 419, 142, 16, 1, 418, 38, 418, 419, 143, 419, 419, 420, 142, 421, 1416, 144, 1416, 419, 16, 16, 142, 419, 142, 419, 142, 419, 142, 16, 1, 1417, 38, 1417, 419, 143, 419, 419, 420, 142, 1418, 144, 419, 16, 16, 142, 419, 142, 419, 142, 419, 142, 16, 1, 1419, 21, 1419, 143, 409, 1418, 144, 16, 16, 142, 16, 1, 1420, 21, 1420, 423, 1421, 423, 423, 142, 142, 425, 144, 423, 16, 16, 142, 423, 142, 423, 142, 423, 142, 16, 1, 1422, 146, 1422, 201, 1423, 202, 16, 16, 200, 16, 1, 418, 38, 418, 419, 143, 419, 419, 420, 142, 421, 1424, 1425, 144, 1424, 1425, 419, 16, 16, 142, 419, 142, 419, 142, 419, 142, 16, 1, 418, 38, 418, 419, 143, 419, 419, 420, 142, 421, 1426, 144, 1426, 419, 16, 16, 142, 419, 142, 419, 142, 419, 142, 16, 1, 1427, 38, 1427, 419, 143, 419, 419, 420, 142, 1428, 144, 419, 16, 16, 142, 419, 142, 419, 142, 419, 142, 16, 1, 1429, 21, 1429, 143, 409, 1428, 144, 16, 16, 142, 16, 1, 1428, 21, 1428, 423, 1430, 423, 423, 142, 142, 425, 144, 423, 16, 16, 142, 423, 142, 423, 142, 423, 142, 16, 1, 1431, 146, 1431, 215, 1432, 216, 213, 213, 214, 213, 1, 418, 38, 418, 419, 143, 419, 419, 420, 142, 421, 1433, 144, 1433, 419, 16, 16, 142, 419, 142, 419, 142, 419, 142, 16, 1, 418, 38, 418, 419, 143, 419, 419, 420, 142, 421, 1434, 144, 1434, 419, 16, 16, 142, 419, 142, 419, 142, 419, 142, 16, 1, 418, 38, 418, 419, 143, 419, 419, 420, 142, 421, 1435, 144, 1435, 419, 16, 16, 142, 419, 142, 419, 142, 419, 142, 16, 1, 418, 38, 418, 419, 143, 419, 419, 420, 142, 421, 1436, 144, 1436, 419, 16, 16, 142, 419, 142, 419, 142, 419, 142, 16, 1, 418, 38, 418, 419, 143, 419, 419, 420, 142, 421, 1437, 144, 1437, 419, 16, 16, 142, 419, 142, 419, 142, 419, 142, 16, 1, 418, 38, 418, 419, 143, 419, 419, 420, 142, 421, 1438, 144, 1438, 419, 16, 16, 142, 419, 142, 419, 142, 419, 142, 16, 1, 1439, 38, 1439, 419, 143, 419, 419, 420, 142, 1440, 144, 419, 16, 16, 142, 419, 142, 419, 142, 419, 142, 16, 1, 1441, 21, 1441, 143, 409, 1440, 144, 16, 16, 142, 16, 1, 1442, 21, 1442, 423, 1443, 423, 423, 142, 142, 425, 144, 423, 16, 16, 142, 423, 142, 423, 142, 423, 142, 16, 1, 1444, 146, 1444, 1143, 1445, 1145, 16, 16, 1142, 16, 1, 312, 38, 312, 313, 113, 313, 313, 301, 112, 314, 1446, 114, 1446, 313, 16, 16, 112, 313, 112, 313, 112, 313, 112, 16, 1, 312, 38, 312, 313, 113, 313, 313, 301, 112, 314, 1447, 114, 1447, 313, 16, 16, 112, 313, 112, 313, 112, 313, 112, 16, 1, 312, 38, 312, 313, 113, 313, 313, 301, 112, 314, 1448, 114, 1448, 313, 16, 16, 112, 313, 112, 313, 112, 313, 112, 16, 1, 312, 38, 312, 313, 113, 313, 313, 301, 112, 314, 1449, 114, 1449, 313, 16, 16, 112, 313, 112, 313, 112, 313, 112, 16, 1, 312, 38, 312, 313, 113, 313, 313, 301, 112, 314, 1450, 114, 1450, 313, 16, 16, 112, 313, 112, 313, 112, 313, 112, 16, 1, 1451, 38, 1451, 313, 113, 313, 313, 301, 112, 1452, 114, 313, 16, 16, 112, 313, 112, 313, 112, 313, 112, 16, 1, 1453, 21, 1453, 113, 303, 1452, 114, 16, 16, 112, 16, 1, 1454, 21, 1454, 316, 1455, 316, 316, 112, 112, 318, 114, 316, 16, 16, 112, 316, 112, 316, 112, 316, 112, 16, 1, 1456, 116, 1456, 159, 1457, 160, 16, 16, 158, 16, 1, 312, 38, 312, 313, 113, 313, 313, 301, 112, 314, 1458, 114, 1458, 313, 16, 16, 112, 313, 112, 313, 112, 313, 112, 16, 1, 312, 38, 312, 313, 113, 313, 313, 301, 112, 314, 1459, 114, 1459, 313, 16, 16, 112, 313, 112, 313, 112, 313, 112, 16, 1, 1460, 38, 1460, 313, 113, 313, 313, 301, 112, 1461, 114, 313, 16, 16, 112, 313, 112, 313, 112, 313, 112, 16, 1, 1462, 21, 1462, 113, 303, 1461, 114, 16, 16, 112, 16, 1, 1461, 21, 1461, 1463, 317, 1463, 1463, 112, 112, 318, 114, 1463, 16, 16, 112, 1463, 112, 1463, 112, 1463, 112, 16, 1, 1464, 171, 1464, 1465, 113, 1465, 1465, 1466, 112, 114, 1465, 16, 16, 112, 1465, 112, 1465, 112, 1465, 112, 16, 1, 312, 38, 312, 313, 113, 313, 313, 301, 112, 314, 1467, 114, 1467, 313, 16, 16, 112, 313, 112, 313, 112, 313, 112, 16, 1, 312, 38, 312, 313, 113, 313, 313, 301, 112, 314, 1468, 1469, 114, 1468, 1469, 313, 16, 16, 112, 313, 112, 313, 112, 313, 112, 16, 1, 312, 38, 312, 313, 113, 313, 313, 301, 112, 314, 1470, 114, 1470, 313, 16, 16, 112, 313, 112, 313, 112, 313, 112, 16, 1, 312, 38, 312, 313, 113, 313, 313, 301, 112, 314, 1471, 114, 1471, 313, 16, 16, 112, 313, 112, 313, 112, 313, 112, 16, 1, 1472, 38, 1472, 313, 113, 313, 313, 301, 112, 1473, 114, 313, 16, 16, 112, 313, 112, 313, 112, 313, 112, 16, 1, 1474, 21, 1474, 113, 303, 1473, 114, 16, 16, 112, 16, 1, 1475, 21, 1475, 316, 1476, 316, 316, 112, 112, 318, 114, 316, 16, 16, 112, 316, 112, 316, 112, 316, 112, 16, 1, 1477, 116, 1477, 185, 1478, 186, 16, 16, 184, 16, 1, 312, 38, 312, 313, 113, 313, 313, 301, 112, 314, 1479, 114, 1479, 313, 16, 16, 112, 313, 112, 313, 112, 313, 112, 16, 1, 312, 38, 312, 313, 113, 313, 313, 301, 112, 314, 1480, 114, 1480, 313, 16, 16, 112, 313, 112, 313, 112, 313, 112, 16, 1, 312, 38, 312, 313, 113, 313, 313, 301, 112, 314, 1481, 114, 1481, 313, 16, 16, 112, 313, 112, 313, 112, 313, 112, 16, 1, 312, 38, 312, 313, 113, 313, 313, 301, 112, 314, 1482, 114, 1482, 313, 16, 16, 112, 313, 112, 313, 112, 313, 112, 16, 1, 312, 38, 312, 313, 113, 313, 313, 301, 112, 314, 1483, 114, 1483, 313, 16, 16, 112, 313, 112, 313, 112, 313, 112, 16, 1, 1484, 38, 1484, 313, 113, 313, 313, 301, 112, 1485, 114, 313, 16, 16, 112, 313, 112, 313, 112, 313, 112, 16, 1, 1486, 21, 1486, 113, 303, 1485, 114, 16, 16, 112, 16, 1, 1487, 21, 1487, 316, 1488, 316, 316, 112, 112, 318, 114, 316, 16, 16, 112, 316, 112, 316, 112, 316, 112, 16, 1, 1489, 116, 1489, 201, 1490, 202, 16, 16, 200, 16, 1, 312, 38, 312, 313, 113, 313, 313, 301, 112, 314, 1491, 1492, 114, 1491, 1492, 313, 16, 16, 112, 313, 112, 313, 112, 313, 112, 16, 1, 312, 38, 312, 313, 113, 313, 313, 301, 112, 314, 1493, 114, 1493, 313, 16, 16, 112, 313, 112, 313, 112, 313, 112, 16, 1, 1494, 38, 1494, 313, 113, 313, 313, 301, 112, 1495, 114, 313, 16, 16, 112, 313, 112, 313, 112, 313, 112, 16, 1, 1496, 21, 1496, 113, 303, 1495, 114, 16, 16, 112, 16, 1, 1495, 21, 1495, 316, 1497, 316, 316, 112, 112, 318, 114, 316, 16, 16, 112, 316, 112, 316, 112, 316, 112, 16, 1, 1498, 116, 1498, 215, 1499, 216, 213, 213, 214, 213, 1, 312, 38, 312, 313, 113, 313, 313, 301, 112, 314, 1500, 114, 1500, 313, 16, 16, 112, 313, 112, 313, 112, 313, 112, 16, 1, 312, 38, 312, 313, 113, 313, 313, 301, 112, 314, 1501, 114, 1501, 313, 16, 16, 112, 313, 112, 313, 112, 313, 112, 16, 1, 312, 38, 312, 313, 113, 313, 313, 301, 112, 314, 1502, 114, 1502, 313, 16, 16, 112, 313, 112, 313, 112, 313, 112, 16, 1, 312, 38, 312, 313, 113, 313, 313, 301, 112, 314, 1503, 114, 1503, 313, 16, 16, 112, 313, 112, 313, 112, 313, 112, 16, 1, 312, 38, 312, 313, 113, 313, 313, 301, 112, 314, 1504, 114, 1504, 313, 16, 16, 112, 313, 112, 313, 112, 313, 112, 16, 1, 312, 38, 312, 313, 113, 313, 313, 301, 112, 314, 1505, 114, 1505, 313, 16, 16, 112, 313, 112, 313, 112, 313, 112, 16, 1, 1506, 38, 1506, 313, 113, 313, 313, 301, 112, 1507, 114, 313, 16, 16, 112, 313, 112, 313, 112, 313, 112, 16, 1, 1508, 21, 1508, 113, 303, 1507, 114, 16, 16, 112, 16, 1, 1509, 21, 1509, 316, 1510, 316, 316, 112, 112, 318, 114, 316, 16, 16, 112, 316, 112, 316, 112, 316, 112, 16, 1, 1511, 116, 1511, 1143, 1512, 1145, 16, 16, 1142, 16, 1, 232, 38, 232, 233, 51, 233, 233, 234, 47, 235, 1513, 1514, 52, 1513, 1514, 233, 16, 16, 47, 233, 47, 233, 47, 233, 47, 16, 1, 1515, 38, 1515, 233, 51, 233, 233, 234, 47, 1516, 52, 233, 16, 16, 47, 233, 47, 233, 47, 233, 47, 16, 1, 1517, 21, 1517, 51, 223, 1516, 52, 16, 16, 47, 16, 1, 1516, 21, 1516, 237, 238, 237, 237, 47, 47, 239, 52, 237, 16, 16, 47, 237, 1518, 47, 237, 47, 237, 1518, 237, 47, 16, 1, 240, 38, 240, 237, 51, 237, 237, 234, 47, 52, 237, 16, 16, 47, 237, 1519, 47, 237, 47, 237, 1519, 237, 47, 16, 1, 240, 38, 240, 237, 51, 237, 237, 234, 47, 52, 237, 16, 16, 47, 237, 1520, 47, 237, 47, 237, 1520, 237, 47, 16, 1, 240, 38, 240, 237, 51, 237, 237, 234, 47, 52, 237, 16, 16, 47, 237, 1521, 47, 237, 47, 237, 1521, 237, 47, 16, 1, 240, 38, 240, 237, 51, 237, 237, 234, 47, 52, 237, 16, 16, 47, 237, 1522, 47, 237, 47, 237, 1522, 237, 47, 16, 1, 240, 38, 240, 237, 51, 237, 237, 234, 47, 52, 237, 16, 16, 47, 237, 1523, 47, 237, 47, 237, 1523, 237, 47, 16, 1, 240, 38, 240, 237, 51, 237, 237, 234, 47, 52, 237, 16, 16, 47, 237, 1524, 47, 237, 47, 237, 1524, 237, 47, 16, 1, 240, 38, 240, 237, 51, 237, 237, 234, 47, 52, 237, 16, 16, 47, 237, 1525, 47, 237, 47, 237, 1525, 237, 47, 16, 1, 1526, 132, 1526, 51, 1527, 52, 16, 16, 47, 16, 1, 232, 38, 232, 233, 51, 233, 233, 234, 47, 235, 1528, 52, 1528, 233, 16, 16, 47, 233, 47, 233, 47, 233, 47, 16, 1, 232, 38, 232, 233, 51, 233, 233, 234, 47, 235, 1529, 52, 1529, 233, 16, 16, 47, 233, 47, 233, 47, 233, 47, 16, 1, 232, 38, 232, 233, 51, 233, 233, 234, 47, 235, 1530, 52, 1530, 233, 16, 16, 47, 233, 47, 233, 47, 233, 47, 16, 1, 1531, 38, 1531, 233, 51, 233, 233, 234, 47, 1532, 52, 233, 16, 16, 47, 233, 47, 233, 47, 233, 47, 16, 1, 1533, 21, 1533, 51, 223, 1532, 52, 16, 16, 47, 16, 1, 1534, 21, 1534, 237, 1535, 237, 237, 47, 47, 239, 52, 237, 16, 16, 47, 237, 47, 237, 47, 237, 47, 16, 1, 232, 38, 232, 233, 51, 233, 233, 234, 47, 235, 1536, 52, 1536, 233, 16, 16, 47, 233, 47, 233, 47, 233, 47, 16, 1, 232, 38, 232, 233, 51, 233, 233, 234, 47, 235, 1537, 52, 1537, 233, 16, 16, 47, 233, 47, 233, 47, 233, 47, 16, 1, 232, 38, 232, 233, 51, 233, 233, 234, 47, 235, 1538, 52, 1538, 233, 16, 16, 47, 233, 47, 233, 47, 233, 47, 16, 1, 232, 38, 232, 233, 51, 233, 233, 234, 47, 235, 1539, 52, 1539, 233, 16, 16, 47, 233, 47, 233, 47, 233, 47, 16, 1, 232, 38, 232, 233, 51, 233, 233, 234, 47, 235, 1540, 52, 1540, 233, 16, 16, 47, 233, 47, 233, 47, 233, 47, 16, 1, 1541, 38, 1541, 233, 51, 233, 233, 234, 47, 1542, 52, 233, 16, 16, 47, 233, 47, 233, 47, 233, 47, 16, 1, 1543, 21, 1543, 51, 223, 1542, 52, 16, 16, 47, 16, 1, 1544, 21, 1544, 237, 1545, 237, 237, 47, 47, 239, 52, 237, 16, 16, 47, 237, 47, 237, 47, 237, 47, 16, 1, 232, 38, 232, 233, 51, 233, 233, 234, 47, 235, 1546, 52, 1546, 233, 16, 16, 47, 233, 47, 233, 47, 233, 47, 16, 1, 232, 38, 232, 233, 51, 233, 233, 234, 47, 235, 1547, 52, 1547, 233, 16, 16, 47, 233, 47, 233, 47, 233, 47, 16, 1, 1548, 38, 1548, 233, 51, 233, 233, 234, 47, 1549, 52, 233, 16, 16, 47, 233, 47, 233, 47, 233, 47, 16, 1, 1550, 21, 1550, 51, 223, 1549, 52, 16, 16, 47, 16, 1, 1549, 21, 1549, 1551, 238, 1551, 1551, 47, 47, 239, 52, 1551, 16, 16, 47, 1551, 47, 1551, 47, 1551, 47, 16, 1, 1552, 171, 1552, 1553, 51, 1553, 1553, 1554, 47, 52, 1553, 16, 16, 47, 1553, 47, 1553, 47, 1553, 47, 16, 1, 232, 38, 232, 233, 51, 233, 233, 234, 47, 235, 1555, 52, 1555, 233, 16, 16, 47, 233, 47, 233, 47, 233, 47, 16, 1, 232, 38, 232, 233, 51, 233, 233, 234, 47, 235, 1556, 1557, 52, 1556, 1557, 233, 16, 16, 47, 233, 47, 233, 47, 233, 47, 16, 1, 232, 38, 232, 233, 51, 233, 233, 234, 47, 235, 1558, 52, 1558, 233, 16, 16, 47, 233, 47, 233, 47, 233, 47, 16, 1, 232, 38, 232, 233, 51, 233, 233, 234, 47, 235, 1559, 52, 1559, 233, 16, 16, 47, 233, 47, 233, 47, 233, 47, 16, 1, 1560, 38, 1560, 233, 51, 233, 233, 234, 47, 1561, 52, 233, 16, 16, 47, 233, 47, 233, 47, 233, 47, 16, 1, 1562, 21, 1562, 51, 223, 1561, 52, 16, 16, 47, 16, 1, 1563, 21, 1563, 237, 1564, 237, 237, 47, 47, 239, 52, 237, 16, 16, 47, 237, 47, 237, 47, 237, 47, 16, 1, 232, 38, 232, 233, 51, 233, 233, 234, 47, 235, 1565, 52, 1565, 233, 16, 16, 47, 233, 47, 233, 47, 233, 47, 16, 1, 232, 38, 232, 233, 51, 233, 233, 234, 47, 235, 1566, 52, 1566, 233, 16, 16, 47, 233, 47, 233, 47, 233, 47, 16, 1, 232, 38, 232, 233, 51, 233, 233, 234, 47, 235, 1567, 52, 1567, 233, 16, 16, 47, 233, 47, 233, 47, 233, 47, 16, 1, 232, 38, 232, 233, 51, 233, 233, 234, 47, 235, 1568, 52, 1568, 233, 16, 16, 47, 233, 47, 233, 47, 233, 47, 16, 1, 232, 38, 232, 233, 51, 233, 233, 234, 47, 235, 1569, 52, 1569, 233, 16, 16, 47, 233, 47, 233, 47, 233, 47, 16, 1, 1570, 38, 1570, 233, 51, 233, 233, 234, 47, 1571, 52, 233, 16, 16, 47, 233, 47, 233, 47, 233, 47, 16, 1, 1572, 21, 1572, 51, 223, 1571, 52, 16, 16, 47, 16, 1, 1573, 21, 1573, 237, 1574, 237, 237, 47, 47, 239, 52, 237, 16, 16, 47, 237, 47, 237, 47, 237, 47, 16, 1, 232, 38, 232, 233, 51, 233, 233, 234, 47, 235, 1575, 1576, 52, 1575, 1576, 233, 16, 16, 47, 233, 47, 233, 47, 233, 47, 16, 1, 232, 38, 232, 233, 51, 233, 233, 234, 47, 235, 1577, 52, 1577, 233, 16, 16, 47, 233, 47, 233, 47, 233, 47, 16, 1, 1578, 38, 1578, 233, 51, 233, 233, 234, 47, 1579, 52, 233, 16, 16, 47, 233, 47, 233, 47, 233, 47, 16, 1, 1580, 21, 1580, 51, 223, 1579, 52, 16, 16, 47, 16, 1, 1579, 21, 1579, 237, 1581, 237, 237, 47, 47, 239, 52, 237, 16, 16, 47, 237, 47, 237, 47, 237, 47, 16, 1, 1582, 38, 1582, 215, 1583, 216, 213, 213, 214, 213, 1, 232, 38, 232, 233, 51, 233, 233, 234, 47, 235, 1584, 52, 1584, 233, 16, 16, 47, 233, 47, 233, 47, 233, 47, 16, 1, 232, 38, 232, 233, 51, 233, 233, 234, 47, 235, 1585, 52, 1585, 233, 16, 16, 47, 233, 47, 233, 47, 233, 47, 16, 1, 232, 38, 232, 233, 51, 233, 233, 234, 47, 235, 1586, 52, 1586, 233, 16, 16, 47, 233, 47, 233, 47, 233, 47, 16, 1, 232, 38, 232, 233, 51, 233, 233, 234, 47, 235, 1587, 52, 1587, 233, 16, 16, 47, 233, 47, 233, 47, 233, 47, 16, 1, 232, 38, 232, 233, 51, 233, 233, 234, 47, 235, 1588, 52, 1588, 233, 16, 16, 47, 233, 47, 233, 47, 233, 47, 16, 1, 232, 38, 232, 233, 51, 233, 233, 234, 47, 235, 1589, 52, 1589, 233, 16, 16, 47, 233, 47, 233, 47, 233, 47, 16, 1, 1590, 38, 1590, 233, 51, 233, 233, 234, 47, 1591, 52, 233, 16, 16, 47, 233, 47, 233, 47, 233, 47, 16, 1, 1592, 21, 1592, 51, 223, 1591, 52, 16, 16, 47, 16, 1, 1593, 21, 1593, 237, 1594, 237, 237, 47, 47, 239, 52, 237, 16, 16, 47, 237, 47, 237, 47, 237, 47, 16, 1, 37, 38, 37, 39, 39, 39, 40, 16, 41, 1595, 1595, 39, 16, 39, 16, 39, 16, 39, 16, 1, 37, 38, 37, 39, 39, 39, 40, 16, 41, 1596, 1596, 39, 16, 39, 16, 39, 16, 39, 16, 1, 37, 38, 37, 39, 39, 39, 40, 16, 41, 1597, 1597, 39, 16, 39, 16, 39, 16, 39, 16, 1, 37, 38, 37, 39, 39, 39, 40, 16, 41, 1598, 1598, 39, 16, 39, 16, 39, 16, 39, 16, 1, 37, 38, 37, 39, 39, 39, 40, 16, 41, 1599, 1599, 39, 16, 39, 16, 39, 16, 39, 16, 1, 37, 38, 37, 39, 39, 39, 40, 16, 41, 1600, 1600, 39, 16, 39, 16, 39, 16, 39, 16, 1, 1601, 38, 1601, 39, 39, 39, 40, 16, 1602, 39, 16, 39, 16, 39, 16, 39, 16, 1, 1603, 21, 1603, 43, 1602, 16, 1, 1604, 21, 1604, 46, 1605, 46, 46, 16, 16, 48, 46, 16, 46, 16, 46, 16, 46, 16, 1, 37, 38, 37, 39, 39, 39, 40, 16, 41, 1606, 207, 1606, 207, 39, 16, 39, 16, 39, 16, 39, 16, 1, 37, 38, 37, 39, 39, 39, 40, 16, 41, 1607, 1607, 39, 16, 39, 16, 39, 16, 39, 16, 1, 1608, 38, 1608, 39, 39, 39, 40, 16, 1609, 39, 16, 39, 16, 39, 16, 39, 16, 1, 1610, 21, 1610, 43, 1609, 16, 1, 1609, 21, 1609, 46, 1611, 46, 46, 16, 16, 48, 46, 16, 46, 16, 46, 16, 46, 16, 1, 1612, 21, 215, 1613, 213, 213, 1612, 213, 1, 1614, 21, 218, 1615, 217, 217, 1614, 217, 1, 217, 21, 1616, 1614, 217, 1, 1617, 21, 1617, 51, 1618, 52, 16, 16, 47, 16, 1, 1618, 21, 1618, 1619, 51, 1619, 1619, 47, 47, 1620, 1621, 1622, 1623, 1624, 1625, 1626, 52, 1620, 1621, 1622, 1623, 1624, 1625, 1626, 1619, 16, 16, 47, 1619, 47, 1619, 47, 1619, 47, 16, 1, 1627, 38, 1627, 1628, 51, 1628, 1628, 1629, 47, 1630, 52, 1628, 16, 16, 47, 1628, 47, 1628, 47, 1628, 47, 16, 1, 1631, 21, 1631, 51, 1618, 1630, 52, 16, 16, 47, 16, 1, 1630, 21, 1630, 1632, 238, 1632, 1632, 47, 47, 1633, 52, 1632, 16, 16, 47, 1632, 47, 1632, 47, 1632, 47, 16, 1, 1634, 38, 1634, 1632, 51, 1632, 1632, 1629, 47, 52, 1632, 16, 16, 47, 1632, 47, 1632, 47, 1632, 47, 16, 1, 47, 21, 51, 1636, 52, 16, 16, 47, 1635, 47, 1635, 47, 1635, 47, 16, 1, 47, 21, 51, 1638, 52, 1639, 16, 16, 47, 1637, 47, 1637, 47, 1637, 47, 16, 1, 47, 21, 51, 1638, 52, 1639, 16, 16, 47, 1640, 47, 1640, 47, 1640, 47, 16, 1, 47, 21, 51, 1638, 52, 1639, 16, 16, 47, 1641, 47, 1641, 47, 1641, 47, 16, 1, 47, 21, 51, 1638, 52, 1639, 16, 16, 47, 16, 1, 47, 21, 51, 1643, 52, 16, 16, 47, 1642, 47, 1635, 47, 1635, 47, 16, 1, 47, 21, 51, 1644, 1638, 52, 1639, 16, 16, 47, 1645, 47, 1637, 47, 1637, 47, 16, 1, 47, 21, 51, 52, 16, 16, 47, 1646, 47, 16, 1, 47, 21, 51, 1647, 52, 16, 16, 47, 1648, 47, 16, 1, 47, 21, 51, 52, 16, 16, 47, 1649, 47, 16, 1, 47, 21, 51, 1650, 52, 16, 16, 47, 1651, 47, 16, 1, 47, 21, 51, 52, 16, 16, 47, 1652, 47, 16, 1, 47, 21, 51, 52, 1639, 16, 16, 47, 1653, 47, 16, 1, 47, 21, 51, 52, 1639, 16, 16, 47, 1654, 47, 16, 1, 47, 21, 51, 52, 1639, 16, 16, 47, 16, 1, 1634, 38, 1634, 51, 1629, 52, 16, 16, 47, 16, 1, 47, 21, 51, 1650, 52, 16, 16, 47, 1655, 47, 16, 1, 47, 21, 51, 1650, 52, 16, 16, 47, 16, 1, 47, 21, 51, 1647, 52, 16, 16, 47, 1656, 47, 16, 1, 47, 21, 51, 1647, 52, 16, 16, 47, 16, 1, 47, 21, 51, 1644, 1638, 52, 1639, 16, 16, 47, 1657, 47, 1640, 47, 1640, 47, 16, 1, 47, 21, 51, 1644, 1638, 52, 1639, 16, 16, 47, 1641, 47, 1641, 47, 1641, 47, 16, 1, 47, 21, 51, 1659, 52, 1639, 16, 16, 47, 1658, 47, 1658, 47, 1658, 47, 16, 1, 47, 21, 51, 1661, 52, 1639, 16, 16, 47, 1660, 47, 1660, 47, 1660, 47, 16, 1, 47, 21, 51, 1661, 52, 1639, 16, 16, 47, 1662, 47, 1662, 47, 1662, 47, 16, 1, 47, 21, 51, 1661, 52, 1639, 16, 16, 47, 1663, 47, 1663, 47, 1663, 47, 16, 1, 47, 21, 51, 1661, 52, 1639, 16, 16, 47, 16, 1, 47, 21, 51, 52, 16, 16, 47, 1664, 47, 1658, 47, 1658, 47, 16, 1, 47, 21, 51, 1644, 1661, 52, 1639, 16, 16, 47, 1665, 47, 1660, 47, 1660, 47, 16, 1, 47, 21, 51, 1644, 1661, 52, 1639, 16, 16, 47, 1666, 47, 1662, 47, 1662, 47, 16, 1, 47, 21, 51, 1644, 1661, 52, 1639, 16, 16, 47, 1663, 47, 1663, 47, 1663, 47, 16, 1, 47, 21, 51, 52, 16, 16, 47, 1667, 47, 16, 1, 47, 21, 51, 1644, 52, 16, 16, 47, 1668, 47, 16, 1, 47, 21, 51, 1644, 52, 16, 16, 47, 1669, 47, 16, 1, 47, 21, 51, 1644, 52, 16, 16, 47, 16, 1, 47, 21, 51, 1643, 52, 16, 16, 47, 16, 1, 1627, 38, 1627, 1628, 51, 1628, 1628, 1629, 47, 1630, 1670, 52, 1670, 1628, 16, 16, 47, 1628, 47, 1628, 47, 1628, 47, 16, 1, 1627, 38, 1627, 1628, 51, 1628, 1628, 1629, 47, 1630, 1671, 52, 1671, 1628, 16, 16, 47, 1628, 47, 1628, 47, 1628, 47, 16, 1, 1627, 38, 1627, 1628, 51, 1628, 1628, 1629, 47, 1630, 1672, 52, 1672, 1628, 16, 16, 47, 1628, 47, 1628, 47, 1628, 47, 16, 1, 1627, 38, 1627, 1628, 51, 1628, 1628, 1629, 47, 1630, 1673, 52, 1673, 1628, 16, 16, 47, 1628, 47, 1628, 47, 1628, 47, 16, 1, 1627, 38, 1627, 1628, 51, 1628, 1628, 1629, 47, 1630, 1674, 52, 1674, 1628, 16, 16, 47, 1628, 47, 1628, 47, 1628, 47, 16, 1, 1627, 38, 1627, 1628, 51, 1628, 1628, 1629, 47, 1630, 1675, 52, 1675, 1628, 16, 16, 47, 1628, 47, 1628, 47, 1628, 47, 16, 1, 1627, 38, 1627, 1628, 51, 1628, 1628, 1629, 47, 1630, 1676, 52, 1676, 1628, 16, 16, 47, 1628, 47, 1628, 47, 1628, 47, 16, 1, 1627, 38, 1627, 1628, 51, 1628, 1628, 1629, 47, 1630, 1677, 52, 1677, 1628, 16, 16, 47, 1628, 47, 1628, 47, 1628, 47, 16, 1, 1678, 38, 1678, 1628, 51, 1628, 1628, 1629, 47, 1679, 52, 1628, 16, 16, 47, 1628, 47, 1628, 47, 1628, 47, 16, 1, 1680, 21, 1680, 51, 1618, 1679, 52, 16, 16, 47, 16, 1, 1679, 21, 1679, 1681, 238, 1681, 1681, 47, 47, 1633, 52, 1681, 16, 16, 47, 1681, 47, 1681, 47, 1681, 47, 16, 1, 1682, 99, 1682, 1683, 51, 1683, 1683, 1684, 47, 52, 1683, 16, 16, 47, 1683, 47, 1683, 47, 1683, 47, 16, 1, 1627, 38, 1627, 1628, 51, 1628, 1628, 1629, 47, 1630, 1685, 52, 1685, 1628, 16, 16, 47, 1628, 47, 1628, 47, 1628, 47, 16, 1, 1627, 38, 1627, 1628, 51, 1628, 1628, 1629, 47, 1630, 1686, 52, 1686, 1628, 16, 16, 47, 1628, 47, 1628, 47, 1628, 47, 16, 1, 1627, 38, 1627, 1628, 51, 1628, 1628, 1629, 47, 1630, 1687, 52, 1687, 1628, 16, 16, 47, 1628, 47, 1628, 47, 1628, 47, 16, 1, 1627, 38, 1627, 1628, 51, 1628, 1628, 1629, 47, 1630, 1688, 52, 1688, 1628, 16, 16, 47, 1628, 47, 1628, 47, 1628, 47, 16, 1, 1627, 38, 1627, 1628, 51, 1628, 1628, 1629, 47, 1630, 1689, 52, 1689, 1628, 16, 16, 47, 1628, 47, 1628, 47, 1628, 47, 16, 1, 1690, 38, 1690, 1628, 51, 1628, 1628, 1629, 47, 1691, 52, 1628, 16, 16, 47, 1628, 47, 1628, 47, 1628, 47, 16, 1, 1692, 21, 1692, 51, 1618, 1691, 52, 16, 16, 47, 16, 1, 1693, 21, 1693, 1632, 299, 1632, 1632, 47, 47, 1633, 52, 1632, 16, 16, 47, 1632, 47, 1632, 47, 1632, 47, 16, 1, 1627, 38, 1627, 1628, 51, 1628, 1628, 1629, 47, 1630, 1694, 1695, 52, 1694, 1695, 1628, 16, 16, 47, 1628, 47, 1628, 47, 1628, 47, 16, 1, 1696, 38, 1696, 1628, 51, 1628, 1628, 1629, 47, 1697, 52, 1628, 16, 16, 47, 1628, 47, 1628, 47, 1628, 47, 16, 1, 1698, 21, 1698, 51, 1618, 1697, 52, 16, 16, 47, 16, 1, 1697, 21, 1697, 1632, 238, 1632, 1632, 47, 47, 1633, 52, 1632, 16, 16, 47, 1632, 1699, 47, 1632, 47, 1632, 1699, 1632, 47, 16, 1, 1634, 38, 1634, 1632, 51, 1632, 1632, 1629, 47, 52, 1632, 16, 16, 47, 1632, 1700, 47, 1632, 47, 1632, 1700, 1632, 47, 16, 1, 1634, 38, 1634, 1632, 51, 1632, 1632, 1629, 47, 52, 1632, 16, 16, 47, 1632, 1701, 47, 1632, 47, 1632, 1701, 1632, 47, 16, 1, 1634, 38, 1634, 1632, 51, 1632, 1632, 1629, 47, 52, 1632, 16, 16, 47, 1632, 1702, 47, 1632, 47, 1632, 1702, 1632, 47, 16, 1, 1634, 38, 1634, 1632, 51, 1632, 1632, 1629, 47, 52, 1632, 16, 16, 47, 1632, 1703, 47, 1632, 47, 1632, 1703, 1632, 47, 16, 1, 1634, 38, 1634, 1632, 51, 1632, 1632, 1629, 47, 52, 1632, 16, 16, 47, 1632, 1704, 47, 1632, 47, 1632, 1704, 1632, 47, 16, 1, 1634, 38, 1634, 1632, 51, 1632, 1632, 1629, 47, 52, 1632, 16, 16, 47, 1632, 1705, 47, 1632, 47, 1632, 1705, 1632, 47, 16, 1, 1634, 38, 1634, 1632, 51, 1632, 1632, 1629, 47, 52, 1632, 16, 16, 47, 1632, 1706, 47, 1632, 47, 1632, 1706, 1632, 47, 16, 1, 1707, 132, 1707, 51, 1708, 52, 16, 16, 47, 16, 1, 1627, 38, 1627, 1628, 51, 1628, 1628, 1629, 47, 1630, 1709, 52, 1709, 1628, 16, 16, 47, 1628, 47, 1628, 47, 1628, 47, 16, 1, 1627, 38, 1627, 1628, 51, 1628, 1628, 1629, 47, 1630, 1710, 52, 1710, 1628, 16, 16, 47, 1628, 47, 1628, 47, 1628, 47, 16, 1, 1627, 38, 1627, 1628, 51, 1628, 1628, 1629, 47, 1630, 1711, 52, 1711, 1628, 16, 16, 47, 1628, 47, 1628, 47, 1628, 47, 16, 1, 1712, 38, 1712, 1628, 51, 1628, 1628, 1629, 47, 1713, 52, 1628, 16, 16, 47, 1628, 47, 1628, 47, 1628, 47, 16, 1, 1714, 21, 1714, 51, 1618, 1713, 52, 16, 16, 47, 16, 1, 1715, 21, 1715, 1632, 1535, 1632, 1632, 47, 47, 1633, 52, 1632, 16, 16, 47, 1632, 47, 1632, 47, 1632, 47, 16, 1, 1627, 38, 1627, 1628, 51, 1628, 1628, 1629, 47, 1630, 1716, 52, 1716, 1628, 16, 16, 47, 1628, 47, 1628, 47, 1628, 47, 16, 1, 1627, 38, 1627, 1628, 51, 1628, 1628, 1629, 47, 1630, 1717, 52, 1717, 1628, 16, 16, 47, 1628, 47, 1628, 47, 1628, 47, 16, 1, 1627, 38, 1627, 1628, 51, 1628, 1628, 1629, 47, 1630, 1718, 52, 1718, 1628, 16, 16, 47, 1628, 47, 1628, 47, 1628, 47, 16, 1, 1627, 38, 1627, 1628, 51, 1628, 1628, 1629, 47, 1630, 1719, 52, 1719, 1628, 16, 16, 47, 1628, 47, 1628, 47, 1628, 47, 16, 1, 1627, 38, 1627, 1628, 51, 1628, 1628, 1629, 47, 1630, 1720, 52, 1720, 1628, 16, 16, 47, 1628, 47, 1628, 47, 1628, 47, 16, 1, 1721, 38, 1721, 1628, 51, 1628, 1628, 1629, 47, 1722, 52, 1628, 16, 16, 47, 1628, 47, 1628, 47, 1628, 47, 16, 1, 1723, 21, 1723, 51, 1618, 1722, 52, 16, 16, 47, 16, 1, 1724, 21, 1724, 1632, 1545, 1632, 1632, 47, 47, 1633, 52, 1632, 16, 16, 47, 1632, 47, 1632, 47, 1632, 47, 16, 1, 1627, 38, 1627, 1628, 51, 1628, 1628, 1629, 47, 1630, 1725, 52, 1725, 1628, 16, 16, 47, 1628, 47, 1628, 47, 1628, 47, 16, 1, 1627, 38, 1627, 1628, 51, 1628, 1628, 1629, 47, 1630, 1726, 52, 1726, 1628, 16, 16, 47, 1628, 47, 1628, 47, 1628, 47, 16, 1, 1727, 38, 1727, 1628, 51, 1628, 1628, 1629, 47, 1728, 52, 1628, 16, 16, 47, 1628, 47, 1628, 47, 1628, 47, 16, 1, 1729, 21, 1729, 51, 1618, 1728, 52, 16, 16, 47, 16, 1, 1728, 21, 1728, 1730, 238, 1730, 1730, 47, 47, 1633, 52, 1730, 16, 16, 47, 1730, 47, 1730, 47, 1730, 47, 16, 1, 1731, 171, 1731, 1732, 51, 1732, 1732, 1733, 47, 52, 1732, 16, 16, 47, 1732, 47, 1732, 47, 1732, 47, 16, 1, 1627, 38, 1627, 1628, 51, 1628, 1628, 1629, 47, 1630, 1734, 52, 1734, 1628, 16, 16, 47, 1628, 47, 1628, 47, 1628, 47, 16, 1, 1627, 38, 1627, 1628, 51, 1628, 1628, 1629, 47, 1630, 1735, 1736, 52, 1735, 1736, 1628, 16, 16, 47, 1628, 47, 1628, 47, 1628, 47, 16, 1, 1627, 38, 1627, 1628, 51, 1628, 1628, 1629, 47, 1630, 1737, 52, 1737, 1628, 16, 16, 47, 1628, 47, 1628, 47, 1628, 47, 16, 1, 1627, 38, 1627, 1628, 51, 1628, 1628, 1629, 47, 1630, 1738, 52, 1738, 1628, 16, 16, 47, 1628, 47, 1628, 47, 1628, 47, 16, 1, 1739, 38, 1739, 1628, 51, 1628, 1628, 1629, 47, 1740, 52, 1628, 16, 16, 47, 1628, 47, 1628, 47, 1628, 47, 16, 1, 1741, 21, 1741, 51, 1618, 1740, 52, 16, 16, 47, 16, 1, 1742, 21, 1742, 1632, 1564, 1632, 1632, 47, 47, 1633, 52, 1632, 16, 16, 47, 1632, 47, 1632, 47, 1632, 47, 16, 1, 1627, 38, 1627, 1628, 51, 1628, 1628, 1629, 47, 1630, 1743, 52, 1743, 1628, 16, 16, 47, 1628, 47, 1628, 47, 1628, 47, 16, 1, 1627, 38, 1627, 1628, 51, 1628, 1628, 1629, 47, 1630, 1744, 52, 1744, 1628, 16, 16, 47, 1628, 47, 1628, 47, 1628, 47, 16, 1, 1627, 38, 1627, 1628, 51, 1628, 1628, 1629, 47, 1630, 1745, 52, 1745, 1628, 16, 16, 47, 1628, 47, 1628, 47, 1628, 47, 16, 1, 1627, 38, 1627, 1628, 51, 1628, 1628, 1629, 47, 1630, 1746, 52, 1746, 1628, 16, 16, 47, 1628, 47, 1628, 47, 1628, 47, 16, 1, 1627, 38, 1627, 1628, 51, 1628, 1628, 1629, 47, 1630, 1747, 52, 1747, 1628, 16, 16, 47, 1628, 47, 1628, 47, 1628, 47, 16, 1, 1748, 38, 1748, 1628, 51, 1628, 1628, 1629, 47, 1749, 52, 1628, 16, 16, 47, 1628, 47, 1628, 47, 1628, 47, 16, 1, 1750, 21, 1750, 51, 1618, 1749, 52, 16, 16, 47, 16, 1, 1751, 21, 1751, 1632, 1574, 1632, 1632, 47, 47, 1633, 52, 1632, 16, 16, 47, 1632, 47, 1632, 47, 1632, 47, 16, 1, 1627, 38, 1627, 1628, 51, 1628, 1628, 1629, 47, 1630, 1752, 1753, 52, 1752, 1753, 1628, 16, 16, 47, 1628, 47, 1628, 47, 1628, 47, 16, 1, 1627, 38, 1627, 1628, 51, 1628, 1628, 1629, 47, 1630, 1754, 52, 1754, 1628, 16, 16, 47, 1628, 47, 1628, 47, 1628, 47, 16, 1, 1755, 38, 1755, 1628, 51, 1628, 1628, 1629, 47, 1756, 52, 1628, 16, 16, 47, 1628, 47, 1628, 47, 1628, 47, 16, 1, 1757, 21, 1757, 51, 1618, 1756, 52, 16, 16, 47, 16, 1, 1756, 21, 1756, 1632, 1758, 1632, 1632, 47, 47, 1633, 52, 1632, 16, 16, 47, 1632, 47, 1632, 47, 1632, 47, 16, 1, 1759, 38, 1759, 215, 1760, 216, 213, 213, 214, 213, 1, 1627, 38, 1627, 1628, 51, 1628, 1628, 1629, 47, 1630, 1761, 52, 1761, 1628, 16, 16, 47, 1628, 47, 1628, 47, 1628, 47, 16, 1, 1627, 38, 1627, 1628, 51, 1628, 1628, 1629, 47, 1630, 1762, 52, 1762, 1628, 16, 16, 47, 1628, 47, 1628, 47, 1628, 47, 16, 1, 1627, 38, 1627, 1628, 51, 1628, 1628, 1629, 47, 1630, 1763, 52, 1763, 1628, 16, 16, 47, 1628, 47, 1628, 47, 1628, 47, 16, 1, 1627, 38, 1627, 1628, 51, 1628, 1628, 1629, 47, 1630, 1764, 52, 1764, 1628, 16, 16, 47, 1628, 47, 1628, 47, 1628, 47, 16, 1, 1627, 38, 1627, 1628, 51, 1628, 1628, 1629, 47, 1630, 1765, 52, 1765, 1628, 16, 16, 47, 1628, 47, 1628, 47, 1628, 47, 16, 1, 1627, 38, 1627, 1628, 51, 1628, 1628, 1629, 47, 1630, 1766, 52, 1766, 1628, 16, 16, 47, 1628, 47, 1628, 47, 1628, 47, 16, 1, 1767, 38, 1767, 1628, 51, 1628, 1628, 1629, 47, 1768, 52, 1628, 16, 16, 47, 1628, 47, 1628, 47, 1628, 47, 16, 1, 1769, 21, 1769, 51, 1618, 1768, 52, 16, 16, 47, 16, 1, 1770, 21, 1770, 1632, 1594, 1632, 1632, 47, 47, 1633, 52, 1632, 16, 16, 47, 1632, 47, 1632, 47, 1632, 47, 16, 1, 21, 1771, 1771, 16, 1, 21, 1772, 1772, 16, 1, 21, 1773, 1773, 16, 1, 21, 1774, 1774, 16, 1, 21, 1775, 1775, 16, 1, 1776, 21, 1776, 16, 1, 1777, 21, 16, 1, 17, 21, 17, 16, 1, 1778, 1778, 1, 1779, 1779, 1, 1780, 1780, 1, 1781, 1781, 1, 1782, 1, 1783, 1783, 1, 1, 0]; _tsip_machine_parser_header_Authorization_trans_targs = [2, 0, 1345, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 18, 1343, 19, 1337, 17, 1351, 20, 21, 22, 23, 24, 24, 25, 28, 81, 92, 113, 124, 130, 1205, 26, 17, 25, 27, 29, 26, 27, 151, 70, 30, 32, 35, 31, 31, 33, 34, 36, 69, 37, 40, 38, 39, 41, 56, 42, 54, 43, 44, 52, 45, 46, 50, 47, 48, 49, 51, 53, 55, 57, 65, 58, 61, 59, 60, 62, 63, 64, 66, 67, 68, 71, 72, 73, 74, 75, 76, 77, 78, 79, 78, 80, 31, 17, 80, 27, 82, 83, 84, 85, 86, 87, 88, 87, 88, 89, 89, 90, 91, 31, 17, 27, 93, 104, 94, 95, 94, 96, 97, 98, 99, 100, 101, 102, 103, 31, 17, 27, 105, 106, 107, 108, 109, 108, 109, 110, 110, 111, 112, 31, 17, 27, 114, 115, 116, 117, 118, 119, 120, 119, 120, 121, 121, 122, 123, 31, 17, 27, 125, 126, 127, 128, 127, 129, 31, 17, 129, 27, 131, 132, 140, 133, 134, 135, 136, 135, 136, 137, 137, 138, 139, 31, 17, 27, 141, 142, 143, 144, 145, 146, 147, 146, 147, 148, 148, 149, 150, 31, 17, 27, 152, 1196, 153, 154, 155, 154, 156, 157, 158, 31, 159, 157, 31, 158, 159, 160, 160, 161, 162, 202, 214, 1134, 1152, 1160, 1166, 1181, 163, 162, 161, 164, 163, 165, 166, 167, 160, 168, 201, 169, 172, 170, 171, 173, 188, 174, 186, 175, 176, 184, 177, 178, 182, 179, 180, 181, 183, 185, 187, 189, 197, 190, 193, 191, 192, 194, 195, 196, 198, 199, 200, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 211, 213, 160, 213, 161, 215, 216, 217, 218, 219, 220, 221, 220, 221, 222, 223, 224, 223, 224, 225, 265, 277, 286, 1086, 1095, 1101, 1118, 226, 225, 227, 226, 228, 229, 230, 160, 161, 231, 264, 232, 235, 222, 233, 234, 236, 251, 237, 249, 238, 239, 247, 240, 241, 245, 242, 243, 244, 246, 248, 250, 252, 260, 253, 256, 254, 255, 257, 258, 259, 261, 262, 263, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 274, 276, 223, 276, 224, 278, 279, 280, 281, 282, 283, 284, 283, 284, 285, 223, 224, 287, 298, 288, 289, 288, 290, 291, 292, 293, 294, 295, 296, 297, 223, 224, 299, 300, 301, 302, 303, 302, 303, 304, 305, 306, 305, 306, 307, 348, 360, 369, 388, 1047, 1053, 1070, 308, 307, 306, 309, 308, 310, 311, 312, 305, 160, 161, 313, 347, 314, 317, 327, 315, 316, 318, 334, 319, 332, 320, 321, 330, 322, 323, 328, 324, 325, 326, 329, 331, 333, 335, 343, 336, 339, 337, 338, 340, 341, 342, 344, 345, 346, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 357, 359, 305, 359, 306, 361, 362, 363, 364, 365, 366, 367, 366, 367, 368, 223, 224, 370, 381, 371, 372, 371, 373, 374, 375, 376, 377, 378, 379, 380, 305, 306, 382, 383, 384, 385, 386, 385, 386, 387, 305, 306, 389, 390, 391, 392, 393, 394, 395, 394, 395, 396, 397, 398, 397, 398, 399, 440, 452, 461, 480, 489, 495, 1031, 400, 399, 398, 401, 400, 402, 403, 404, 397, 160, 161, 405, 439, 406, 409, 419, 407, 408, 410, 426, 411, 424, 412, 413, 422, 414, 415, 420, 416, 417, 418, 421, 423, 425, 427, 435, 428, 431, 429, 430, 432, 433, 434, 436, 437, 438, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 449, 451, 397, 451, 398, 453, 454, 455, 456, 457, 458, 459, 458, 459, 460, 223, 224, 462, 473, 463, 464, 463, 465, 466, 467, 468, 469, 470, 471, 472, 397, 398, 474, 475, 476, 477, 478, 477, 478, 479, 305, 306, 481, 482, 483, 484, 485, 486, 487, 486, 487, 488, 397, 398, 490, 491, 492, 493, 492, 494, 397, 494, 398, 496, 497, 1022, 498, 499, 500, 501, 500, 501, 502, 503, 504, 503, 504, 505, 546, 558, 567, 586, 595, 601, 1006, 506, 505, 504, 507, 506, 508, 509, 510, 503, 160, 161, 511, 545, 512, 515, 525, 513, 514, 516, 532, 517, 530, 518, 519, 528, 520, 521, 526, 522, 523, 524, 527, 529, 531, 533, 541, 534, 537, 535, 536, 538, 539, 540, 542, 543, 544, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 555, 557, 503, 557, 504, 559, 560, 561, 562, 563, 564, 565, 564, 565, 566, 223, 224, 568, 579, 569, 570, 569, 571, 572, 573, 574, 575, 576, 577, 578, 503, 504, 580, 581, 582, 583, 584, 583, 584, 585, 305, 306, 587, 588, 589, 590, 591, 592, 593, 592, 593, 594, 397, 398, 596, 597, 598, 599, 598, 600, 503, 600, 504, 602, 603, 609, 604, 605, 606, 607, 606, 607, 608, 503, 504, 610, 611, 612, 613, 614, 615, 616, 615, 616, 617, 618, 619, 618, 619, 620, 661, 673, 682, 701, 710, 716, 733, 621, 620, 619, 622, 621, 623, 624, 625, 618, 160, 161, 626, 660, 627, 630, 640, 628, 629, 631, 647, 632, 645, 633, 634, 643, 635, 636, 641, 637, 638, 639, 642, 644, 646, 648, 656, 649, 652, 650, 651, 653, 654, 655, 657, 658, 659, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 670, 672, 618, 672, 619, 674, 675, 676, 677, 678, 679, 680, 679, 680, 681, 223, 224, 683, 694, 684, 685, 684, 686, 687, 688, 689, 690, 691, 692, 693, 618, 619, 695, 696, 697, 698, 699, 698, 699, 700, 305, 306, 702, 703, 704, 705, 706, 707, 708, 707, 708, 709, 397, 398, 711, 712, 713, 714, 713, 715, 618, 715, 619, 717, 718, 724, 719, 720, 721, 722, 721, 722, 723, 503, 504, 725, 726, 727, 728, 729, 730, 731, 730, 731, 732, 618, 619, 734, 996, 735, 736, 737, 736, 738, 739, 740, 739, 740, 741, 781, 793, 801, 819, 827, 833, 848, 742, 741, 740, 743, 742, 744, 745, 739, 746, 780, 747, 750, 760, 748, 749, 751, 767, 752, 765, 753, 754, 763, 755, 756, 761, 757, 758, 759, 762, 764, 766, 768, 776, 769, 772, 770, 771, 773, 774, 775, 777, 778, 779, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 790, 792, 739, 792, 740, 794, 795, 796, 797, 798, 799, 800, 799, 800, 223, 802, 813, 803, 804, 803, 805, 806, 807, 808, 809, 810, 811, 812, 739, 740, 814, 815, 816, 817, 818, 817, 818, 305, 820, 821, 822, 823, 824, 825, 826, 825, 826, 397, 828, 829, 830, 831, 830, 832, 739, 832, 740, 834, 835, 840, 836, 837, 838, 839, 838, 839, 503, 841, 842, 843, 844, 845, 846, 847, 846, 847, 618, 849, 853, 850, 851, 852, 851, 854, 855, 856, 857, 858, 859, 860, 861, 860, 861, 862, 862, 863, 864, 866, 865, 31, 17, 27, 867, 908, 920, 929, 948, 957, 963, 980, 868, 867, 866, 869, 868, 870, 871, 872, 862, 160, 161, 873, 907, 874, 877, 887, 875, 876, 878, 894, 879, 892, 880, 881, 890, 882, 883, 888, 884, 885, 886, 889, 891, 893, 895, 903, 896, 899, 897, 898, 900, 901, 902, 904, 905, 906, 909, 910, 911, 912, 913, 914, 915, 916, 917, 918, 917, 919, 862, 919, 866, 921, 922, 923, 924, 925, 926, 927, 926, 927, 928, 223, 224, 930, 941, 931, 932, 931, 933, 934, 935, 936, 937, 938, 939, 940, 862, 866, 942, 943, 944, 945, 946, 945, 946, 947, 305, 306, 949, 950, 951, 952, 953, 954, 955, 954, 955, 956, 397, 398, 958, 959, 960, 961, 960, 962, 862, 962, 866, 964, 965, 971, 966, 967, 968, 969, 968, 969, 970, 503, 504, 972, 973, 974, 975, 976, 977, 978, 977, 978, 979, 618, 619, 981, 986, 982, 983, 984, 983, 985, 739, 740, 987, 988, 989, 990, 991, 992, 993, 994, 993, 994, 995, 862, 866, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1003, 1004, 1005, 862, 866, 1007, 1012, 1008, 1009, 1010, 1009, 1011, 739, 740, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1019, 1020, 1021, 862, 866, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1028, 1029, 1030, 618, 619, 1032, 1037, 1033, 1034, 1035, 1034, 1036, 739, 740, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1044, 1045, 1046, 862, 866, 1048, 1049, 1050, 1051, 1050, 1052, 305, 1052, 306, 1054, 1055, 1061, 1056, 1057, 1058, 1059, 1058, 1059, 1060, 503, 504, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1067, 1068, 1069, 618, 619, 1071, 1076, 1072, 1073, 1074, 1073, 1075, 739, 740, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1083, 1084, 1085, 862, 866, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1092, 1093, 1094, 397, 398, 1096, 1097, 1098, 1099, 1098, 1100, 223, 1100, 224, 1102, 1103, 1109, 1104, 1105, 1106, 1107, 1106, 1107, 1108, 503, 504, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1115, 1116, 1117, 618, 619, 1119, 1124, 1120, 1121, 1122, 1121, 1123, 739, 740, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1131, 1132, 1133, 862, 866, 1135, 1146, 1136, 1137, 1136, 1138, 1139, 1140, 1141, 1142, 1143, 1144, 1145, 160, 161, 1147, 1148, 1149, 1150, 1151, 1150, 1151, 327, 1153, 1154, 1155, 1156, 1157, 1158, 1159, 1158, 1159, 419, 1161, 1162, 1163, 1164, 1163, 1165, 160, 1165, 161, 1167, 1168, 1173, 1169, 1170, 1171, 1172, 1171, 1172, 525, 1174, 1175, 1176, 1177, 1178, 1179, 1180, 1179, 1180, 640, 1182, 1187, 1183, 1184, 1185, 1184, 1186, 739, 740, 1188, 1189, 1190, 1191, 1192, 1193, 1194, 1195, 1194, 1195, 887, 1197, 1198, 1199, 1200, 1201, 1202, 1203, 1204, 1203, 1204, 863, 1206, 1207, 1208, 1209, 1208, 1210, 1211, 1212, 1211, 1212, 1213, 1213, 1214, 1215, 1255, 1267, 1275, 1293, 1301, 1307, 1322, 1216, 1215, 1214, 1217, 1216, 1218, 1219, 1213, 1220, 1254, 1221, 1224, 1234, 1222, 1223, 1225, 1241, 1226, 1239, 1227, 1228, 1237, 1229, 1230, 1235, 1231, 1232, 1233, 1236, 1238, 1240, 1242, 1250, 1243, 1246, 1244, 1245, 1247, 1248, 1249, 1251, 1252, 1253, 1256, 1257, 1258, 1259, 1260, 1261, 1262, 1263, 1264, 1265, 1264, 1266, 1213, 1266, 1214, 1268, 1269, 1270, 1271, 1272, 1273, 1274, 1273, 1274, 1276, 1287, 1277, 1278, 1277, 1279, 1280, 1281, 1282, 1283, 1284, 1285, 1286, 1213, 1214, 1288, 1289, 1290, 1291, 1292, 1291, 1292, 1294, 1295, 1296, 1297, 1298, 1299, 1300, 1299, 1300, 1302, 1303, 1304, 1305, 1304, 1306, 1213, 1306, 1214, 1308, 1309, 1314, 1310, 1311, 1312, 1313, 1312, 1313, 1315, 1316, 1317, 1318, 1319, 1320, 1321, 1320, 1321, 1323, 1328, 1324, 1325, 1326, 1325, 1327, 739, 740, 1329, 1330, 1331, 1332, 1333, 1334, 1335, 1336, 1335, 1336, 1338, 1339, 1340, 1341, 1342, 24, 1344, 1346, 1347, 1348, 1349, 1350, 2]; _tsip_machine_parser_header_Authorization_trans_actions = [7, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 0, 0, 0, 0, 5, 0, 1, 1, 1, 1, 1, 1, 1, 1, 31, 31, 0, 31, 0, 0, 0, 1, 0, 0, 0, 0, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 0, 1, 21, 21, 0, 21, 0, 0, 0, 0, 0, 31, 0, 0, 1, 1, 0, 0, 0, 23, 23, 23, 0, 0, 31, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 29, 29, 29, 0, 0, 0, 31, 0, 0, 1, 1, 0, 0, 0, 15, 15, 15, 0, 0, 0, 0, 0, 31, 0, 0, 1, 1, 0, 0, 0, 25, 25, 25, 0, 0, 31, 0, 0, 1, 27, 27, 0, 27, 0, 0, 0, 0, 0, 31, 0, 0, 1, 1, 0, 0, 0, 13, 13, 13, 0, 0, 0, 0, 0, 31, 0, 0, 1, 1, 0, 0, 0, 19, 19, 19, 0, 0, 0, 31, 0, 0, 0, 1, 1, 35, 1, 0, 17, 0, 0, 17, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 31, 0, 31, 0, 0, 0, 0, 0, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 0, 1, 21, 0, 21, 0, 0, 0, 0, 0, 31, 0, 0, 1, 1, 31, 31, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 31, 0, 0, 0, 0, 0, 0, 23, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 0, 1, 21, 0, 21, 0, 0, 0, 0, 0, 31, 0, 0, 1, 1, 23, 23, 0, 0, 31, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 29, 29, 0, 0, 0, 31, 0, 0, 1, 1, 23, 23, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 31, 0, 31, 0, 0, 0, 0, 0, 31, 15, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 0, 1, 21, 0, 21, 0, 0, 0, 0, 0, 31, 0, 0, 1, 1, 15, 15, 0, 0, 31, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 29, 29, 0, 0, 0, 31, 0, 0, 1, 1, 15, 15, 0, 0, 0, 0, 0, 31, 0, 0, 1, 1, 15, 15, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 31, 0, 31, 0, 0, 0, 0, 0, 31, 25, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 0, 1, 21, 0, 21, 0, 0, 0, 0, 0, 31, 0, 0, 1, 1, 25, 25, 0, 0, 31, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 29, 29, 0, 0, 0, 31, 0, 0, 1, 1, 25, 25, 0, 0, 0, 0, 0, 31, 0, 0, 1, 1, 25, 25, 0, 0, 31, 0, 0, 1, 27, 0, 27, 0, 0, 0, 0, 0, 31, 0, 0, 1, 1, 25, 25, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 31, 0, 31, 0, 0, 0, 0, 0, 31, 13, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 0, 1, 21, 0, 21, 0, 0, 0, 0, 0, 31, 0, 0, 1, 1, 13, 13, 0, 0, 31, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 29, 29, 0, 0, 0, 31, 0, 0, 1, 1, 13, 13, 0, 0, 0, 0, 0, 31, 0, 0, 1, 1, 13, 13, 0, 0, 31, 0, 0, 1, 27, 0, 27, 0, 0, 0, 0, 0, 31, 0, 0, 1, 1, 13, 13, 0, 0, 0, 0, 0, 31, 0, 0, 1, 1, 13, 13, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 31, 0, 31, 0, 0, 0, 0, 0, 31, 19, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 0, 1, 21, 0, 21, 0, 0, 0, 0, 0, 31, 0, 0, 1, 1, 19, 19, 0, 0, 31, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 29, 29, 0, 0, 0, 31, 0, 0, 1, 1, 19, 19, 0, 0, 0, 0, 0, 31, 0, 0, 1, 1, 19, 19, 0, 0, 31, 0, 0, 1, 27, 0, 27, 0, 0, 0, 0, 0, 31, 0, 0, 1, 1, 19, 19, 0, 0, 0, 0, 0, 31, 0, 0, 1, 1, 19, 19, 0, 0, 0, 31, 0, 0, 0, 38, 38, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 31, 0, 31, 0, 0, 0, 0, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 0, 1, 21, 0, 21, 0, 0, 0, 0, 0, 31, 0, 0, 1, 59, 0, 0, 31, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 29, 29, 0, 0, 0, 31, 0, 0, 1, 35, 0, 0, 0, 0, 0, 31, 0, 0, 1, 59, 0, 0, 31, 0, 0, 1, 27, 0, 27, 0, 0, 0, 0, 0, 31, 0, 0, 1, 35, 0, 0, 0, 0, 0, 31, 0, 0, 1, 59, 0, 0, 0, 31, 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 0, 1, 35, 0, 0, 0, 0, 0, 11, 11, 11, 1, 1, 1, 1, 1, 1, 1, 1, 31, 0, 31, 0, 0, 0, 0, 0, 31, 11, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 0, 1, 21, 0, 21, 0, 0, 0, 0, 0, 31, 0, 0, 1, 1, 11, 11, 0, 0, 31, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 29, 29, 0, 0, 0, 31, 0, 0, 1, 1, 11, 11, 0, 0, 0, 0, 0, 31, 0, 0, 1, 1, 11, 11, 0, 0, 31, 0, 0, 1, 27, 0, 27, 0, 0, 0, 0, 0, 31, 0, 0, 1, 1, 11, 11, 0, 0, 0, 0, 0, 31, 0, 0, 1, 1, 11, 11, 0, 0, 0, 31, 0, 0, 0, 50, 50, 0, 0, 0, 0, 0, 0, 31, 0, 0, 1, 1, 11, 11, 0, 0, 0, 0, 0, 0, 31, 0, 0, 1, 1, 19, 19, 0, 0, 0, 31, 0, 0, 0, 53, 53, 0, 0, 0, 0, 0, 0, 31, 0, 0, 1, 1, 13, 13, 0, 0, 0, 0, 0, 31, 0, 0, 1, 1, 25, 25, 0, 0, 0, 31, 0, 0, 0, 44, 44, 0, 0, 0, 0, 0, 0, 31, 0, 0, 1, 1, 25, 25, 0, 0, 31, 0, 0, 1, 27, 0, 27, 0, 0, 0, 0, 0, 31, 0, 0, 1, 1, 15, 15, 0, 0, 0, 0, 0, 31, 0, 0, 1, 1, 15, 15, 0, 0, 0, 31, 0, 0, 0, 56, 56, 0, 0, 0, 0, 0, 0, 31, 0, 0, 1, 1, 15, 15, 0, 0, 0, 0, 0, 31, 0, 0, 1, 1, 23, 23, 0, 0, 31, 0, 0, 1, 27, 0, 27, 0, 0, 0, 0, 0, 31, 0, 0, 1, 1, 23, 23, 0, 0, 0, 0, 0, 31, 0, 0, 1, 1, 23, 23, 0, 0, 0, 31, 0, 0, 0, 41, 41, 0, 0, 0, 0, 0, 0, 31, 0, 0, 1, 1, 23, 23, 0, 0, 31, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 29, 29, 0, 0, 0, 31, 0, 0, 1, 1, 0, 0, 0, 0, 0, 31, 0, 0, 1, 1, 0, 0, 31, 0, 0, 1, 27, 0, 27, 0, 0, 0, 0, 0, 31, 0, 0, 1, 1, 0, 0, 0, 0, 0, 31, 0, 0, 1, 1, 0, 0, 0, 31, 0, 0, 0, 47, 47, 0, 0, 0, 0, 0, 0, 31, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 31, 0, 0, 1, 1, 0, 0, 31, 0, 0, 0, 1, 1, 0, 0, 17, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 31, 0, 31, 0, 0, 0, 0, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 0, 1, 21, 0, 21, 0, 0, 0, 0, 0, 31, 0, 0, 1, 0, 0, 31, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 29, 29, 0, 0, 0, 31, 0, 0, 1, 0, 0, 0, 0, 0, 31, 0, 0, 1, 0, 0, 31, 0, 0, 1, 27, 0, 27, 0, 0, 0, 0, 0, 31, 0, 0, 1, 0, 0, 0, 0, 0, 31, 0, 0, 1, 0, 0, 0, 31, 0, 0, 0, 62, 62, 0, 0, 0, 0, 0, 0, 31, 0, 0, 1, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0]; tsip_machine_parser_header_Authorization_start = 1; tsip_machine_parser_header_Authorization_first_final = 1351; tsip_machine_parser_header_Authorization_error = 0; tsip_machine_parser_header_Authorization_en_main = 1; function tsip_header_Authorization() { tsip_header.call(this, tsip_header_type_e.Authorization); this.s_scheme = null; this.s_username = null; this.s_realm = null; this.s_nonce = null; this.s_uri = null; this.s_response = null; this.s_algorithm = null; this.s_cnonce = null; this.s_opaque = null; this.s_qop = null; this.s_nc = null } tsip_header_Authorization.prototype.toString = function() { if (tsk_string_iequals(this.s_scheme, "Basic")) { return tsk_string_format("{0} {1}", this.s_scheme, this.s_response) } else { return tsk_string_format("{0} {1}{2}{3}{4}{5}{6}{7}{8}{9}{10}{11}{12}{13}{14}{15}{16}{17}{18}{19}{20}{21}{22}{23}{24}{25}{26}{27}", this.s_scheme, this.s_username ? 'username="' : "", this.s_username ? this.s_username : "", this.s_username ? '"' : "", this.s_realm ? ',realm="' : "", this.s_realm ? this.s_realm : "", this.s_realm ? '"' : "", (this.s_nonce || this.s_nonce === "") ? ',nonce="' : "", (this.s_nonce || this.s_nonce === "") ? this.s_nonce : "", (this.s_nonce || this.s_nonce === "") ? '"' : "", this.s_uri ? ',uri="' : "", this.s_uri ? this.s_uri : "", this.s_uri ? '"' : "", (this.s_response || this.s_response === "") ? ',response="' : "", (this.s_response || this.s_response === "") ? this.s_response : "", (this.s_response || this.s_response === "") ? '"' : "", this.s_algorithm ? ",algorithm=" : "", this.s_algorithm ? this.s_algorithm : "", this.s_cnonce ? ',cnonce="' : "", this.s_cnonce ? this.s_cnonce : "", this.s_cnonce ? '"' : "", this.s_opaque ? ',opaque="' : "", this.s_opaque ? this.s_opaque : "", this.s_opaque ? '"' : "", this.s_qop ? ",qop=" : "", this.s_qop ? this.s_qop : "", this.s_nc ? ",nc=" : "", this.s_nc ? this.s_nc : "") } }; tsip_header_Authorization.prototype.Parse = function(m) { var f = 0; var k = 0; var v = m.length; var h = v; var w = tsk_buff_str2ib(m); var u; var a = new tsip_header_Authorization(); f = tsip_machine_parser_header_Authorization_start; var g, n, c, e, d, r, l; var o, j, b, q, t; var s; g = n = c = r = l = null; o = 0; j = 10; b = 15; q = 20; t = 30; s = 40; while (true) { _trigger_goto = false; if (o <= 0) { if (k == v) { o = t; continue } if (f == 0) { o = s; continue } } if (o <= j) { c = _tsip_machine_parser_header_Authorization_key_offsets[f]; n = _tsip_machine_parser_header_Authorization_index_offsets[f]; g = _tsip_machine_parser_header_Authorization_single_lengths[f]; _break_match = false; do { if (g > 0) { _lower = c; _upper = c + g - 1; while (true) { if (_upper < _lower) { break } _mid = _lower + ((_upper - _lower) >> 1); if (w[k] < _tsip_machine_parser_header_Authorization_trans_keys[_mid]) { _upper = _mid - 1 } else { if (w[k] > _tsip_machine_parser_header_Authorization_trans_keys[_mid]) { _lower = _mid + 1 } else { n += (_mid - c); _break_match = true; break } } } if (_break_match) { break } c += g; n += g } g = _tsip_machine_parser_header_Authorization_range_lengths[f]; if (g > 0) { _lower = c; _upper = c + (g << 1) - 2; while (true) { if (_upper < _lower) { break } _mid = _lower + (((_upper - _lower) >> 1) & ~1); if (w[k] < _tsip_machine_parser_header_Authorization_trans_keys[_mid]) { _upper = _mid - 2 } else { if (w[k] > _tsip_machine_parser_header_Authorization_trans_keys[_mid + 1]) { _lower = _mid + 2 } else { n += ((_mid - c) >> 1); _break_match = true; break } } } if (_break_match) { break } n += g } } while (false); n = _tsip_machine_parser_header_Authorization_indicies[n]; f = _tsip_machine_parser_header_Authorization_trans_targs[n]; if (_tsip_machine_parser_header_Authorization_trans_actions[n] != 0) { r = _tsip_machine_parser_header_Authorization_trans_actions[n]; l = _tsip_machine_parser_header_Authorization_actions[r]; r += 1; while (l > 0) { l -= 1; r += 1; switch (_tsip_machine_parser_header_Authorization_actions[r - 1]) { case 0: u = k; break; case 1: a.s_scheme = "Digest"; break; case 2: a.s_scheme = "Basic"; break; case 3: tsip_header.call(a, tsip_header_type_e.Authorization); break; case 4: tsip_header.call(a, tsip_header_type_e.Proxy_Authorization); break; case 5: a.s_username = tsk_string_unquote_2(tsk_ragel_parser_get_string(m, k, u)); break; case 6: a.s_realm = tsk_string_unquote_2(tsk_ragel_parser_get_string(m, k, u)); break; case 7: a.s_nonce = tsk_string_unquote_2(tsk_ragel_parser_get_string(m, k, u)); break; case 8: a.s_uri = tsk_ragel_parser_get_string(m, k, u); break; case 9: a.s_response = tsk_string_unquote_2(tsk_ragel_parser_get_string(m, k, u)); break; case 10: a.s_algorithm = tsk_ragel_parser_get_string(m, k, u); break; case 11: a.s_cnonce = tsk_string_unquote_2(tsk_ragel_parser_get_string(m, k, u)); break; case 12: a.s_opaque = tsk_string_unquote_2(tsk_ragel_parser_get_string(m, k, u)); break; case 13: a.s_qop = tsk_ragel_parser_get_string(m, k, u); break; case 14: a.s_nc = tsk_ragel_parser_get_string(m, k, u); break; case 15: tsk_ragel_add_param(m, k, u, a.ao_params); break; case 16: break } } } if (_trigger_goto) { continue } } if (o <= q) { if (f == 0) { o = s; continue } k += 1; if (k != v) { o = j; continue } } if (o <= t) {} if (o <= s) { break } } if (f < 1351) { tsk_utils_log_error("Failed to parse 'Authorization' header: " + m); return null } return a }; tsip_header_Contact.prototype = Object.create(tsip_header.prototype); _tsip_machine_parser_header_Contact_actions = [0, 1, 0, 1, 1, 1, 2, 1, 3, 1, 4, 1, 5, 1, 6, 1, 7, 2, 1, 0, 2, 3, 6, 2, 4, 6, 2, 5, 6]; _tsip_machine_parser_header_Contact_key_offsets = [0, 0, 4, 6, 8, 10, 12, 14, 16, 19, 40, 41, 43, 64, 65, 67, 71, 74, 75, 79, 91, 94, 96, 99, 104, 109, 110, 112, 116, 137, 138, 140, 161, 162, 164, 167, 184, 202, 206, 207, 209, 217, 218, 220, 224, 230, 250, 269, 274, 276, 283, 302, 303, 305, 323, 341, 347, 348, 350, 355, 374, 375, 377, 396, 397, 399, 402, 410, 411, 413, 418, 424, 441, 448, 456, 464, 472, 474, 481, 490, 492, 495, 497, 500, 502, 505, 508, 509, 512, 513, 516, 517, 526, 535, 543, 551, 559, 567, 569, 575, 584, 593, 602, 604, 607, 610, 611, 612, 632, 652, 672, 692, 712, 732, 750, 756, 757, 759, 764, 783, 784, 786, 805, 812, 829, 847, 851]; _tsip_machine_parser_header_Contact_trans_keys = [67, 77, 99, 109, 79, 111, 78, 110, 84, 116, 65, 97, 67, 99, 84, 116, 9, 32, 58, 9, 13, 32, 33, 34, 37, 39, 42, 43, 60, 126, 45, 46, 48, 57, 65, 90, 95, 96, 97, 122, 10, 9, 32, 9, 13, 32, 33, 34, 37, 39, 42, 43, 60, 126, 45, 46, 48, 57, 65, 90, 95, 96, 97, 122, 10, 9, 32, 9, 32, 42, 60, 9, 13, 32, 10, 65, 90, 97, 122, 9, 32, 43, 58, 45, 46, 48, 57, 65, 90, 97, 122, 9, 32, 58, 0, 65535, 62, 0, 65535, 9, 13, 32, 44, 59, 9, 13, 32, 44, 59, 10, 9, 32, 9, 32, 44, 59, 9, 13, 32, 33, 34, 37, 39, 60, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 96, 97, 122, 10, 9, 32, 9, 13, 32, 33, 34, 37, 39, 60, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 96, 97, 122, 10, 9, 32, 9, 32, 60, 9, 13, 32, 33, 37, 39, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 13, 32, 33, 37, 39, 60, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 13, 32, 60, 10, 9, 32, 9, 13, 34, 92, 32, 126, 128, 255, 10, 9, 32, 9, 13, 32, 60, 0, 9, 11, 12, 14, 127, 9, 13, 32, 33, 37, 39, 42, 43, 58, 126, 45, 46, 48, 57, 65, 90, 95, 96, 97, 122, 9, 13, 32, 33, 37, 39, 58, 60, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 13, 32, 58, 60, 0, 65535, 9, 13, 32, 44, 59, 0, 65535, 9, 13, 32, 33, 37, 39, 69, 101, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 10, 9, 32, 9, 32, 33, 37, 39, 69, 101, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 13, 32, 33, 37, 39, 44, 59, 61, 126, 42, 46, 48, 57, 65, 90, 95, 122, 9, 13, 32, 44, 59, 61, 10, 9, 32, 9, 32, 44, 59, 61, 9, 13, 32, 33, 34, 37, 39, 91, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 10, 9, 32, 9, 13, 32, 33, 34, 37, 39, 91, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 10, 9, 32, 9, 32, 34, 9, 13, 34, 92, 32, 126, 128, 255, 10, 9, 32, 9, 13, 32, 44, 59, 0, 9, 11, 12, 14, 127, 9, 13, 32, 33, 37, 39, 44, 59, 126, 42, 46, 48, 57, 65, 90, 95, 122, 58, 48, 57, 65, 70, 97, 102, 58, 93, 48, 57, 65, 70, 97, 102, 58, 93, 48, 57, 65, 70, 97, 102, 58, 93, 48, 57, 65, 70, 97, 102, 58, 93, 58, 48, 57, 65, 70, 97, 102, 46, 58, 93, 48, 57, 65, 70, 97, 102, 48, 57, 46, 48, 57, 48, 57, 46, 48, 57, 48, 57, 93, 48, 57, 93, 48, 57, 93, 46, 48, 57, 46, 46, 48, 57, 46, 46, 58, 93, 48, 57, 65, 70, 97, 102, 46, 58, 93, 48, 57, 65, 70, 97, 102, 58, 93, 48, 57, 65, 70, 97, 102, 58, 93, 48, 57, 65, 70, 97, 102, 58, 93, 48, 57, 65, 70, 97, 102, 58, 93, 48, 57, 65, 70, 97, 102, 58, 93, 48, 57, 65, 70, 97, 102, 46, 58, 93, 48, 57, 65, 70, 97, 102, 46, 58, 93, 48, 57, 65, 70, 97, 102, 46, 58, 93, 48, 57, 65, 70, 97, 102, 48, 57, 46, 48, 57, 46, 48, 57, 46, 58, 9, 13, 32, 33, 37, 39, 44, 59, 61, 88, 120, 126, 42, 46, 48, 57, 65, 90, 95, 122, 9, 13, 32, 33, 37, 39, 44, 59, 61, 80, 112, 126, 42, 46, 48, 57, 65, 90, 95, 122, 9, 13, 32, 33, 37, 39, 44, 59, 61, 73, 105, 126, 42, 46, 48, 57, 65, 90, 95, 122, 9, 13, 32, 33, 37, 39, 44, 59, 61, 82, 114, 126, 42, 46, 48, 57, 65, 90, 95, 122, 9, 13, 32, 33, 37, 39, 44, 59, 61, 69, 101, 126, 42, 46, 48, 57, 65, 90, 95, 122, 9, 13, 32, 33, 37, 39, 44, 59, 61, 83, 115, 126, 42, 46, 48, 57, 65, 90, 95, 122, 9, 13, 32, 33, 37, 39, 44, 59, 61, 126, 42, 46, 48, 57, 65, 90, 95, 122, 9, 13, 32, 44, 59, 61, 10, 9, 32, 9, 32, 44, 59, 61, 9, 13, 32, 33, 34, 37, 39, 91, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 10, 9, 32, 9, 13, 32, 33, 34, 37, 39, 91, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 13, 32, 44, 59, 48, 57, 9, 13, 32, 33, 37, 39, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 13, 32, 33, 37, 39, 60, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 13, 32, 60, 0]; _tsip_machine_parser_header_Contact_single_lengths = [0, 4, 2, 2, 2, 2, 2, 2, 3, 11, 1, 2, 11, 1, 2, 4, 3, 1, 0, 4, 3, 0, 1, 5, 5, 1, 2, 4, 9, 1, 2, 9, 1, 2, 3, 7, 8, 4, 1, 2, 4, 1, 2, 4, 0, 10, 9, 5, 0, 5, 9, 1, 2, 8, 10, 6, 1, 2, 5, 9, 1, 2, 9, 1, 2, 3, 4, 1, 2, 5, 0, 9, 1, 2, 2, 2, 2, 1, 3, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 3, 3, 2, 2, 2, 2, 2, 0, 3, 3, 3, 0, 1, 1, 1, 1, 12, 12, 12, 12, 12, 12, 10, 6, 1, 2, 5, 9, 1, 2, 9, 5, 7, 8, 4, 0]; _tsip_machine_parser_header_Contact_range_lengths = [0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 5, 0, 0, 0, 0, 0, 2, 4, 0, 1, 1, 0, 0, 0, 0, 0, 6, 0, 0, 6, 0, 0, 0, 5, 5, 0, 0, 0, 2, 0, 0, 0, 3, 5, 5, 0, 1, 1, 5, 0, 0, 5, 4, 0, 0, 0, 0, 5, 0, 0, 5, 0, 0, 0, 2, 0, 0, 0, 3, 4, 3, 3, 3, 3, 0, 3, 3, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 3, 3, 3, 3, 3, 3, 0, 3, 3, 3, 3, 1, 1, 1, 0, 0, 4, 4, 4, 4, 4, 4, 4, 0, 0, 0, 0, 5, 0, 0, 5, 1, 5, 5, 0, 0]; _tsip_machine_parser_header_Contact_index_offsets = [0, 0, 5, 8, 11, 14, 17, 20, 23, 27, 44, 46, 49, 66, 68, 71, 76, 80, 82, 85, 94, 98, 100, 103, 109, 115, 117, 120, 125, 141, 143, 146, 162, 164, 167, 171, 184, 198, 203, 205, 208, 215, 217, 220, 225, 229, 245, 260, 266, 268, 275, 290, 292, 295, 309, 324, 331, 333, 336, 342, 357, 359, 362, 377, 379, 382, 386, 393, 395, 398, 404, 408, 422, 427, 433, 439, 445, 448, 453, 460, 462, 465, 467, 470, 472, 475, 478, 480, 483, 485, 488, 490, 497, 504, 510, 516, 522, 528, 531, 535, 542, 549, 556, 558, 561, 564, 566, 568, 585, 602, 619, 636, 653, 670, 685, 692, 694, 697, 703, 718, 720, 723, 738, 745, 758, 772, 777]; _tsip_machine_parser_header_Contact_indicies = [0, 2, 0, 2, 1, 3, 3, 1, 4, 4, 1, 5, 5, 1, 6, 6, 1, 7, 7, 1, 2, 2, 1, 2, 2, 8, 1, 9, 10, 9, 11, 12, 11, 11, 13, 11, 14, 11, 11, 11, 15, 11, 15, 1, 16, 1, 17, 17, 1, 18, 19, 18, 11, 12, 11, 11, 13, 11, 14, 11, 11, 11, 15, 11, 15, 1, 20, 1, 21, 21, 1, 21, 21, 22, 23, 1, 22, 24, 22, 1, 25, 1, 26, 26, 1, 27, 27, 28, 29, 28, 28, 28, 28, 1, 27, 27, 29, 1, 30, 1, 31, 30, 1, 32, 33, 32, 34, 35, 1, 36, 37, 36, 38, 35, 1, 39, 1, 40, 40, 1, 40, 40, 38, 35, 1, 41, 42, 41, 11, 12, 11, 11, 14, 11, 11, 11, 11, 15, 11, 15, 1, 43, 1, 44, 44, 1, 45, 46, 45, 11, 12, 11, 11, 14, 11, 11, 11, 11, 15, 11, 15, 1, 47, 1, 48, 48, 1, 48, 48, 23, 1, 49, 50, 49, 51, 51, 51, 51, 51, 51, 51, 51, 51, 1, 52, 53, 52, 51, 51, 51, 54, 51, 51, 51, 51, 51, 51, 1, 55, 56, 55, 23, 1, 57, 1, 49, 49, 1, 58, 59, 60, 61, 58, 58, 1, 62, 1, 58, 58, 1, 52, 53, 52, 54, 1, 58, 58, 58, 1, 63, 50, 63, 51, 51, 51, 51, 64, 65, 51, 64, 64, 64, 51, 64, 1, 66, 53, 66, 51, 51, 51, 65, 54, 51, 51, 51, 51, 51, 51, 1, 67, 56, 67, 65, 23, 1, 68, 1, 69, 70, 69, 71, 72, 68, 1, 35, 73, 35, 74, 74, 74, 75, 75, 74, 74, 74, 74, 74, 74, 1, 76, 1, 77, 77, 1, 77, 77, 74, 74, 74, 75, 75, 74, 74, 74, 74, 74, 74, 1, 78, 79, 78, 80, 80, 80, 81, 82, 83, 80, 80, 80, 80, 80, 1, 84, 85, 84, 38, 35, 83, 1, 86, 1, 87, 87, 1, 87, 87, 38, 35, 83, 1, 83, 88, 83, 89, 90, 89, 89, 91, 89, 89, 89, 89, 89, 89, 1, 92, 1, 93, 93, 1, 93, 94, 93, 89, 90, 89, 89, 91, 89, 89, 89, 89, 89, 89, 1, 95, 1, 96, 96, 1, 96, 96, 90, 1, 90, 97, 98, 99, 90, 90, 1, 100, 1, 90, 90, 1, 101, 79, 101, 81, 82, 1, 90, 90, 90, 1, 101, 79, 101, 89, 89, 89, 81, 82, 89, 89, 89, 89, 89, 1, 103, 102, 102, 102, 1, 105, 98, 104, 104, 104, 1, 105, 98, 106, 106, 106, 1, 105, 98, 107, 107, 107, 1, 105, 98, 1, 109, 108, 102, 102, 1, 110, 105, 98, 111, 104, 104, 1, 112, 1, 113, 114, 1, 115, 1, 116, 117, 1, 118, 1, 98, 119, 1, 98, 120, 1, 98, 1, 116, 121, 1, 116, 1, 113, 122, 1, 113, 1, 110, 105, 98, 123, 106, 106, 1, 110, 105, 98, 107, 107, 107, 1, 125, 98, 124, 124, 124, 1, 127, 98, 126, 126, 126, 1, 127, 98, 128, 128, 128, 1, 127, 98, 129, 129, 129, 1, 127, 98, 1, 130, 124, 124, 1, 110, 127, 98, 131, 126, 126, 1, 110, 127, 98, 132, 128, 128, 1, 110, 127, 98, 129, 129, 129, 1, 133, 1, 110, 134, 1, 110, 135, 1, 110, 1, 109, 1, 78, 79, 78, 80, 80, 80, 81, 82, 83, 136, 136, 80, 80, 80, 80, 80, 1, 78, 79, 78, 80, 80, 80, 81, 82, 83, 137, 137, 80, 80, 80, 80, 80, 1, 78, 79, 78, 80, 80, 80, 81, 82, 83, 138, 138, 80, 80, 80, 80, 80, 1, 78, 79, 78, 80, 80, 80, 81, 82, 83, 139, 139, 80, 80, 80, 80, 80, 1, 78, 79, 78, 80, 80, 80, 81, 82, 83, 140, 140, 80, 80, 80, 80, 80, 1, 78, 79, 78, 80, 80, 80, 81, 82, 83, 141, 141, 80, 80, 80, 80, 80, 1, 142, 79, 142, 80, 80, 80, 81, 82, 143, 80, 80, 80, 80, 80, 1, 144, 145, 144, 38, 35, 143, 1, 146, 1, 147, 147, 1, 147, 147, 38, 35, 143, 1, 143, 148, 143, 89, 90, 89, 89, 91, 89, 89, 89, 149, 89, 89, 1, 150, 1, 151, 151, 1, 151, 94, 151, 89, 90, 89, 89, 91, 89, 89, 89, 149, 89, 89, 1, 152, 153, 152, 154, 156, 155, 1, 157, 24, 157, 51, 51, 51, 51, 51, 51, 51, 51, 51, 1, 158, 24, 158, 51, 51, 51, 54, 51, 51, 51, 51, 51, 51, 1, 159, 24, 159, 23, 1, 1, 0]; _tsip_machine_parser_header_Contact_trans_targs = [2, 0, 8, 3, 4, 5, 6, 7, 9, 9, 10, 35, 40, 123, 18, 45, 11, 12, 12, 13, 14, 15, 16, 18, 17, 126, 19, 20, 19, 21, 22, 23, 24, 17, 28, 50, 24, 25, 28, 26, 27, 28, 29, 30, 31, 31, 32, 33, 34, 36, 38, 35, 37, 32, 18, 37, 32, 39, 40, 41, 43, 44, 42, 46, 45, 48, 47, 47, 49, 24, 17, 28, 50, 51, 54, 107, 52, 53, 55, 17, 54, 28, 50, 59, 55, 56, 57, 58, 60, 71, 66, 72, 61, 62, 63, 64, 65, 67, 69, 70, 68, 24, 73, 106, 74, 77, 75, 76, 78, 93, 79, 91, 80, 81, 89, 82, 83, 87, 84, 85, 86, 88, 90, 92, 94, 102, 95, 98, 96, 97, 99, 100, 101, 103, 104, 105, 108, 109, 110, 111, 112, 113, 114, 118, 114, 115, 116, 117, 119, 122, 120, 121, 24, 17, 28, 122, 50, 124, 125, 125]; _tsip_machine_parser_header_Contact_trans_actions = [0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 17, 17, 17, 3, 17, 0, 0, 3, 3, 0, 0, 0, 0, 0, 15, 1, 0, 0, 0, 0, 7, 13, 13, 13, 0, 0, 0, 0, 0, 0, 3, 3, 0, 0, 3, 3, 0, 0, 0, 0, 0, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 20, 20, 20, 7, 0, 1, 1, 0, 0, 26, 26, 0, 26, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0, 0, 0, 1, 0, 0, 23, 23, 23, 0, 9, 0, 5, 0]; tsip_machine_parser_header_Contact_start = 1; tsip_machine_parser_header_Contact_first_final = 126; tsip_machine_parser_header_Contact_error = 0; tsip_machine_parser_header_Contact_en_main = 1; function tsip_header_Contact() { tsip_header.call(this, tsip_header_type_e.Contact); this.s_display_name = null; this.o_uri = null; this.i_expires = -1 } tsip_header_Contact.prototype.toString = function() { var a = tsip_uri_tostring(this.o_uri, true, true); if (a && this.i_expires >= 0) { a += tsk_string_format(";expires={0}", this.i_expires) } return a }; tsip_header_Contact.prototype.Parse = function(o) { var f = 0; var m = 0; var x = o.length; var j = x; var y = tsk_buff_str2ib(o); var w; var l = new Array(); var a = null; f = tsip_machine_parser_header_Contact_start; var g, q, c, e, d, t, n; var r, k, b, s, v; var u; g = q = c = t = n = null; r = 0; k = 10; b = 15; s = 20; v = 30; u = 40; while (true) { _trigger_goto = false; if (r <= 0) { if (m == x) { r = v; continue } if (f == 0) { r = u; continue } } if (r <= k) { c = _tsip_machine_parser_header_Contact_key_offsets[f]; q = _tsip_machine_parser_header_Contact_index_offsets[f]; g = _tsip_machine_parser_header_Contact_single_lengths[f]; _break_match = false; do { if (g > 0) { _lower = c; _upper = c + g - 1; while (true) { if (_upper < _lower) { break } _mid = _lower + ((_upper - _lower) >> 1); if (y[m] < _tsip_machine_parser_header_Contact_trans_keys[_mid]) { _upper = _mid - 1 } else { if (y[m] > _tsip_machine_parser_header_Contact_trans_keys[_mid]) { _lower = _mid + 1 } else { q += (_mid - c); _break_match = true; break } } } if (_break_match) { break } c += g; q += g } g = _tsip_machine_parser_header_Contact_range_lengths[f]; if (g > 0) { _lower = c; _upper = c + (g << 1) - 2; while (true) { if (_upper < _lower) { break } _mid = _lower + (((_upper - _lower) >> 1) & ~1); if (y[m] < _tsip_machine_parser_header_Contact_trans_keys[_mid]) { _upper = _mid - 2 } else { if (y[m] > _tsip_machine_parser_header_Contact_trans_keys[_mid + 1]) { _lower = _mid + 2 } else { q += ((_mid - c) >> 1); _break_match = true; break } } } if (_break_match) { break } q += g } } while (false); q = _tsip_machine_parser_header_Contact_indicies[q]; f = _tsip_machine_parser_header_Contact_trans_targs[q]; if (_tsip_machine_parser_header_Contact_trans_actions[q] != 0) { t = _tsip_machine_parser_header_Contact_trans_actions[q]; n = _tsip_machine_parser_header_Contact_actions[t]; t += 1; while (n > 0) { n -= 1; t += 1; switch (_tsip_machine_parser_header_Contact_actions[t - 1]) { case 0: i_tag_start = m; break; case 1: if (!a) { a = new tsip_header_Contact() } break; case 2: if (a) { a.s_display_name = tsk_ragel_parser_get_string(o, m, i_tag_start); a.s_display_name = tsk_string_unquote_2(a.s_display_name) } break; case 3: if (a && !a.o_uri) { var h = tsk_ragel_parser_get_string(o, m, i_tag_start); if ((a.o_uri = tsip_uri.prototype.Parse(h)) && a.s_display_name) { a.o_uri.s_display_name = tsk_strdup(a.s_display_name) } } break; case 4: if (a) { a.i_expires = tsk_ragel_parser_get_int(o, m, i_tag_start) } break; case 5: if (a) { tsk_ragel_add_param(o, m, i_tag_start, a.ao_params) } break; case 6: if (a) { l.push(a); a = null } break; case 7: break } } } if (_trigger_goto) { continue } } if (r <= s) { if (f == 0) { r = u; continue } m += 1; if (m != x) { r = k; continue } } if (r <= v) {} if (r <= u) { break } } if (f < 126) { tsk_utils_log_error("Failed to parse 'Contact' header: " + o); return null } return l }; tsip_header_Content_Type.prototype = Object.create(tsip_header.prototype); _tsip_machine_parser_header_Content_Type_actions = [0, 1, 0, 1, 1, 1, 2, 1, 3]; _tsip_machine_parser_header_Content_Type_key_offsets = [0, 0, 2, 7, 10, 27, 28, 30, 46, 62, 66, 67, 69, 72, 89, 90, 92, 108, 126, 130, 131, 133, 136, 153, 154, 156, 172, 190, 194, 195, 197, 200, 218, 219, 221, 239, 240, 242, 245, 253, 254, 256, 260, 261, 267, 285, 287, 289, 291, 293, 295, 296, 298, 300, 302, 304]; _tsip_machine_parser_header_Content_Type_trans_keys = [67, 99, 9, 32, 58, 79, 111, 9, 32, 58, 9, 13, 32, 33, 37, 39, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 10, 9, 32, 9, 32, 33, 37, 39, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 13, 32, 33, 37, 39, 47, 126, 42, 43, 45, 57, 65, 90, 95, 122, 9, 13, 32, 47, 10, 9, 32, 9, 32, 47, 9, 13, 32, 33, 37, 39, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 10, 9, 32, 9, 32, 33, 37, 39, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 13, 32, 33, 37, 39, 59, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 13, 32, 59, 10, 9, 32, 9, 32, 59, 9, 13, 32, 33, 37, 39, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 10, 9, 32, 9, 32, 33, 37, 39, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 13, 32, 33, 37, 39, 61, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 13, 32, 61, 10, 9, 32, 9, 32, 61, 9, 13, 32, 33, 34, 37, 39, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 10, 9, 32, 9, 13, 32, 33, 34, 37, 39, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 10, 9, 32, 9, 32, 34, 9, 13, 34, 92, 32, 126, 128, 255, 10, 9, 32, 9, 13, 32, 59, 10, 0, 9, 11, 12, 14, 127, 9, 13, 32, 33, 37, 39, 59, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 78, 110, 84, 116, 69, 101, 78, 110, 84, 116, 45, 84, 116, 89, 121, 80, 112, 69, 101, 0]; _tsip_machine_parser_header_Content_Type_single_lengths = [0, 2, 5, 3, 7, 1, 2, 6, 8, 4, 1, 2, 3, 7, 1, 2, 6, 8, 4, 1, 2, 3, 7, 1, 2, 6, 8, 4, 1, 2, 3, 8, 1, 2, 8, 1, 2, 3, 4, 1, 2, 4, 1, 0, 8, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 0]; _tsip_machine_parser_header_Content_Type_range_lengths = [0, 0, 0, 0, 5, 0, 0, 5, 4, 0, 0, 0, 0, 5, 0, 0, 5, 5, 0, 0, 0, 0, 5, 0, 0, 5, 5, 0, 0, 0, 0, 5, 0, 0, 5, 0, 0, 0, 2, 0, 0, 0, 0, 3, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]; _tsip_machine_parser_header_Content_Type_index_offsets = [0, 0, 3, 9, 13, 26, 28, 31, 43, 56, 61, 63, 66, 70, 83, 85, 88, 100, 114, 119, 121, 124, 128, 141, 143, 146, 158, 172, 177, 179, 182, 186, 200, 202, 205, 219, 221, 224, 228, 235, 237, 240, 245, 247, 251, 265, 268, 271, 274, 277, 280, 282, 285, 288, 291, 294]; _tsip_machine_parser_header_Content_Type_indicies = [0, 0, 1, 2, 2, 3, 4, 4, 1, 2, 2, 3, 1, 3, 5, 3, 6, 6, 6, 6, 6, 6, 6, 6, 6, 1, 7, 1, 8, 8, 1, 8, 8, 6, 6, 6, 6, 6, 6, 6, 6, 6, 1, 9, 10, 9, 11, 11, 11, 12, 11, 11, 11, 11, 11, 1, 9, 10, 9, 12, 1, 13, 1, 14, 14, 1, 14, 14, 12, 1, 12, 15, 12, 16, 16, 16, 16, 16, 16, 16, 16, 16, 1, 17, 1, 18, 18, 1, 18, 18, 16, 16, 16, 16, 16, 16, 16, 16, 16, 1, 19, 20, 19, 16, 16, 16, 21, 16, 16, 16, 16, 16, 16, 1, 22, 23, 22, 24, 1, 25, 1, 26, 26, 1, 26, 26, 24, 1, 24, 27, 24, 28, 28, 28, 28, 28, 28, 28, 28, 28, 1, 29, 1, 30, 30, 1, 30, 30, 28, 28, 28, 28, 28, 28, 28, 28, 28, 1, 31, 32, 31, 33, 33, 33, 34, 33, 33, 33, 33, 33, 33, 1, 31, 32, 31, 34, 1, 35, 1, 36, 36, 1, 36, 36, 34, 1, 34, 37, 34, 38, 39, 38, 38, 38, 38, 38, 38, 38, 38, 1, 40, 1, 41, 41, 1, 41, 42, 41, 38, 39, 38, 38, 38, 38, 38, 38, 38, 38, 1, 43, 1, 44, 44, 1, 44, 44, 39, 1, 39, 45, 46, 47, 39, 39, 1, 48, 1, 39, 39, 1, 49, 50, 49, 51, 1, 52, 1, 39, 39, 39, 1, 49, 50, 49, 38, 38, 38, 51, 38, 38, 38, 38, 38, 38, 1, 53, 53, 1, 54, 54, 1, 55, 55, 1, 56, 56, 1, 57, 57, 1, 58, 1, 59, 59, 1, 60, 60, 1, 61, 61, 1, 2, 2, 1, 1, 0]; _tsip_machine_parser_header_Content_Type_trans_targs = [2, 0, 3, 4, 45, 5, 8, 6, 7, 9, 10, 8, 13, 11, 12, 14, 17, 15, 16, 18, 42, 22, 18, 19, 22, 20, 21, 23, 26, 24, 25, 27, 28, 26, 31, 29, 30, 32, 44, 38, 33, 34, 35, 36, 37, 39, 41, 43, 40, 18, 42, 22, 55, 46, 47, 48, 49, 50, 51, 52, 53, 54]; _tsip_machine_parser_header_Content_Type_trans_actions = [0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 5, 5, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0]; tsip_machine_parser_header_Content_Type_start = 1; tsip_machine_parser_header_Content_Type_first_final = 55; tsip_machine_parser_header_Content_Type_error = 0; tsip_machine_parser_header_Content_Type_en_main = 1; function tsip_header_Content_Type(a) { tsip_header.call(this, tsip_header_type_e.Content_Type); this.s_type = a } tsip_header_Content_Type.prototype.toString = function() { return this.s_type }; tsip_header_Content_Type.prototype.Parse = function(l) { var e = 0; var j = 0; var v = l.length; var g = v; var w = tsk_buff_str2ib(l); var u; var t = new tsip_header_Content_Type(null); e = tsip_machine_parser_header_Content_Type_start; var f, m, b, d, c, q, k; var n, h, a, o, s; var r; f = m = b = q = k = null; n = 0; h = 10; a = 15; o = 20; s = 30; r = 40; while (true) { _trigger_goto = false; if (n <= 0) { if (j == v) { n = s; continue } if (e == 0) { n = r; continue } } if (n <= h) { b = _tsip_machine_parser_header_Content_Type_key_offsets[e]; m = _tsip_machine_parser_header_Content_Type_index_offsets[e]; f = _tsip_machine_parser_header_Content_Type_single_lengths[e]; _break_match = false; do { if (f > 0) { _lower = b; _upper = b + f - 1; while (true) { if (_upper < _lower) { break } _mid = _lower + ((_upper - _lower) >> 1); if (w[j] < _tsip_machine_parser_header_Content_Type_trans_keys[_mid]) { _upper = _mid - 1 } else { if (w[j] > _tsip_machine_parser_header_Content_Type_trans_keys[_mid]) { _lower = _mid + 1 } else { m += (_mid - b); _break_match = true; break } } } if (_break_match) { break } b += f; m += f } f = _tsip_machine_parser_header_Content_Type_range_lengths[e]; if (f > 0) { _lower = b; _upper = b + (f << 1) - 2; while (true) { if (_upper < _lower) { break } _mid = _lower + (((_upper - _lower) >> 1) & ~1); if (w[j] < _tsip_machine_parser_header_Content_Type_trans_keys[_mid]) { _upper = _mid - 2 } else { if (w[j] > _tsip_machine_parser_header_Content_Type_trans_keys[_mid + 1]) { _lower = _mid + 2 } else { m += ((_mid - b) >> 1); _break_match = true; break } } } if (_break_match) { break } m += f } } while (false); m = _tsip_machine_parser_header_Content_Type_indicies[m]; e = _tsip_machine_parser_header_Content_Type_trans_targs[m]; if (_tsip_machine_parser_header_Content_Type_trans_actions[m] != 0) { q = _tsip_machine_parser_header_Content_Type_trans_actions[m]; k = _tsip_machine_parser_header_Content_Type_actions[q]; q += 1; while (k > 0) { k -= 1; q += 1; switch (_tsip_machine_parser_header_Content_Type_actions[q - 1]) { case 0: i_tag_start = j; break; case 1: t.s_type = tsk_ragel_parser_get_string(l, j, i_tag_start); break; case 2: tsk_ragel_add_param(l, j, i_tag_start, t.ao_params); break; case 3: break } } } if (_trigger_goto) { continue } } if (n <= o) { if (e == 0) { n = r; continue } j += 1; if (j != v) { n = h; continue } } if (n <= s) {} if (n <= r) { break } } if (e < 55) { tsk_utils_log_error("Failed to parse 'Content-Type' header: " + l); return null } return t }; tsip_header_CSeq.prototype = Object.create(tsip_header.prototype); var TSIP_HEADER_CSEQ_NONE = 0; var TSIP_HEADER_CSEQ_DEFAULT = 1; _tsip_machine_parser_header_CSeq_actions = [0, 1, 0, 1, 1, 1, 2, 1, 3]; _tsip_machine_parser_header_CSeq_key_offsets = [0, 0, 2, 4, 6, 8, 11, 16, 17, 19, 23, 28, 45, 46, 48, 64, 79, 80]; _tsip_machine_parser_header_CSeq_trans_keys = [67, 99, 83, 115, 69, 101, 81, 113, 9, 32, 58, 9, 13, 32, 48, 57, 10, 9, 32, 9, 32, 48, 57, 9, 13, 32, 48, 57, 9, 13, 32, 33, 37, 39, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 10, 9, 32, 9, 32, 33, 37, 39, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 13, 33, 37, 39, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 10, 0]; _tsip_machine_parser_header_CSeq_single_lengths = [0, 2, 2, 2, 2, 3, 3, 1, 2, 2, 3, 7, 1, 2, 6, 5, 1, 0]; _tsip_machine_parser_header_CSeq_range_lengths = [0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 5, 0, 0, 5, 5, 0, 0]; _tsip_machine_parser_header_CSeq_index_offsets = [0, 0, 3, 6, 9, 12, 16, 21, 23, 26, 30, 35, 48, 50, 53, 65, 76, 78]; _tsip_machine_parser_header_CSeq_indicies = [0, 0, 1, 2, 2, 1, 3, 3, 1, 4, 4, 1, 4, 4, 5, 1, 5, 6, 5, 7, 1, 8, 1, 9, 9, 1, 9, 9, 7, 1, 10, 11, 10, 12, 1, 13, 14, 13, 15, 15, 15, 15, 15, 15, 15, 15, 15, 1, 16, 1, 17, 17, 1, 17, 17, 15, 15, 15, 15, 15, 15, 15, 15, 15, 1, 18, 19, 19, 19, 19, 19, 19, 19, 19, 19, 1, 20, 1, 1, 0]; _tsip_machine_parser_header_CSeq_trans_targs = [2, 0, 3, 4, 5, 6, 7, 10, 8, 9, 11, 12, 10, 11, 12, 15, 13, 14, 16, 15, 17]; _tsip_machine_parser_header_CSeq_trans_actions = [0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 5, 5, 0, 0, 0, 1, 0, 0, 3, 0, 7]; tsip_machine_parser_header_CSeq_start = 1; tsip_machine_parser_header_CSeq_first_final = 17; tsip_machine_parser_header_CSeq_error = 0; tsip_machine_parser_header_CSeq_en_main = 1; function tsip_header_CSeq(b, a) { tsip_header.call(this, tsip_header_type_e.CSeq); this.i_seq = b; this.s_method = a; if (a) { this.e_req_type = tsip_message.prototype.GetRequestType(this.s_method) } else { this.e_req_type = tsip_request_type_e.UNKNOWN } } tsip_header_CSeq.prototype.toString = function() { return tsk_string_format("{0} {1}", this.i_seq, this.s_method) }; tsip_header_CSeq.prototype.Parse = function(m) { var e = 0; var k = 0; var v = m.length; var h = v; var w = tsk_buff_str2ib(m); var u; var g = new tsip_header_CSeq(TSIP_HEADER_CSEQ_NONE); e = tsip_machine_parser_header_CSeq_start; var f, n, b, d, c, r, l; var o, j, a, q, t; var s; f = n = b = r = l = null; o = 0; j = 10; a = 15; q = 20; t = 30; s = 40; while (true) { _trigger_goto = false; if (o <= 0) { if (k == v) { o = t; continue } if (e == 0) { o = s; continue } } if (o <= j) { b = _tsip_machine_parser_header_CSeq_key_offsets[e]; n = _tsip_machine_parser_header_CSeq_index_offsets[e]; f = _tsip_machine_parser_header_CSeq_single_lengths[e]; _break_match = false; do { if (f > 0) { _lower = b; _upper = b + f - 1; while (true) { if (_upper < _lower) { break } _mid = _lower + ((_upper - _lower) >> 1); if (w[k] < _tsip_machine_parser_header_CSeq_trans_keys[_mid]) { _upper = _mid - 1 } else { if (w[k] > _tsip_machine_parser_header_CSeq_trans_keys[_mid]) { _lower = _mid + 1 } else { n += (_mid - b); _break_match = true; break } } } if (_break_match) { break } b += f; n += f } f = _tsip_machine_parser_header_CSeq_range_lengths[e]; if (f > 0) { _lower = b; _upper = b + (f << 1) - 2; while (true) { if (_upper < _lower) { break } _mid = _lower + (((_upper - _lower) >> 1) & ~1); if (w[k] < _tsip_machine_parser_header_CSeq_trans_keys[_mid]) { _upper = _mid - 2 } else { if (w[k] > _tsip_machine_parser_header_CSeq_trans_keys[_mid + 1]) { _lower = _mid + 2 } else { n += ((_mid - b) >> 1); _break_match = true; break } } } if (_break_match) { break } n += f } } while (false); n = _tsip_machine_parser_header_CSeq_indicies[n]; e = _tsip_machine_parser_header_CSeq_trans_targs[n]; if (_tsip_machine_parser_header_CSeq_trans_actions[n] != 0) { r = _tsip_machine_parser_header_CSeq_trans_actions[n]; l = _tsip_machine_parser_header_CSeq_actions[r]; r += 1; while (l > 0) { l -= 1; r += 1; switch (_tsip_machine_parser_header_CSeq_actions[r - 1]) { case 0: u = k; break; case 1: g.s_method = tsk_ragel_parser_get_string(m, k, u); g.e_req_type = tsip_message.prototype.GetRequestType(g.s_method); break; case 2: g.i_seq = tsk_ragel_parser_get_int(m, k, u); break; case 3: break } } } if (_trigger_goto) { continue } } if (o <= q) { if (e == 0) { o = s; continue } k += 1; if (k != v) { o = j; continue } } if (o <= t) {} if (o <= s) { break } } if (e < 17) { tsk_utils_log_error("Failed to parse 'CSeq' header: " + m); return null } return g }; tsip_header_RAck.prototype = Object.create(tsip_header.prototype); _tsip_machine_parser_header_RAck_actions = [0, 1, 0, 1, 1, 1, 2, 1, 3, 1, 4]; _tsip_machine_parser_header_RAck_key_offsets = [0, 0, 2, 4, 6, 8, 11, 16, 17, 19, 23, 28, 33, 34, 36, 40, 45, 62, 63, 65, 81, 96, 97]; _tsip_machine_parser_header_RAck_trans_keys = [82, 114, 65, 97, 67, 99, 75, 107, 9, 32, 58, 9, 13, 32, 48, 57, 10, 9, 32, 9, 32, 48, 57, 9, 13, 32, 48, 57, 9, 13, 32, 48, 57, 10, 9, 32, 9, 32, 48, 57, 9, 13, 32, 48, 57, 9, 13, 32, 33, 37, 39, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 10, 9, 32, 9, 32, 33, 37, 39, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 13, 33, 37, 39, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 10, 0]; _tsip_machine_parser_header_RAck_single_lengths = [0, 2, 2, 2, 2, 3, 3, 1, 2, 2, 3, 3, 1, 2, 2, 3, 7, 1, 2, 6, 5, 1, 0]; _tsip_machine_parser_header_RAck_range_lengths = [0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 5, 0, 0, 5, 5, 0, 0]; _tsip_machine_parser_header_RAck_index_offsets = [0, 0, 3, 6, 9, 12, 16, 21, 23, 26, 30, 35, 40, 42, 45, 49, 54, 67, 69, 72, 84, 95, 97]; _tsip_machine_parser_header_RAck_indicies = [0, 0, 1, 2, 2, 1, 3, 3, 1, 4, 4, 1, 4, 4, 5, 1, 5, 6, 5, 7, 1, 8, 1, 9, 9, 1, 9, 9, 7, 1, 10, 11, 10, 12, 1, 13, 14, 13, 15, 1, 16, 1, 17, 17, 1, 17, 17, 15, 1, 18, 19, 18, 20, 1, 21, 22, 21, 23, 23, 23, 23, 23, 23, 23, 23, 23, 1, 24, 1, 25, 25, 1, 25, 25, 23, 23, 23, 23, 23, 23, 23, 23, 23, 1, 26, 27, 27, 27, 27, 27, 27, 27, 27, 27, 1, 28, 1, 1, 0]; _tsip_machine_parser_header_RAck_trans_targs = [2, 0, 3, 4, 5, 6, 7, 10, 8, 9, 11, 12, 10, 11, 12, 15, 13, 14, 16, 17, 15, 16, 17, 20, 18, 19, 21, 20, 22]; _tsip_machine_parser_header_RAck_trans_actions = [0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 3, 3, 0, 0, 0, 1, 0, 0, 5, 5, 0, 0, 0, 1, 0, 0, 7, 0, 9]; tsip_machine_parser_header_RAck_start = 1; tsip_machine_parser_header_RAck_first_final = 22; tsip_machine_parser_header_RAck_error = 0; tsip_machine_parser_header_RAck_en_main = 1; function tsip_header_RAck(b, c, a) { tsip_header.call(this, tsip_header_type_e.RAck); this.i_seq = b; this.i_cseq = c; this.s_method = a } tsip_header_RAck.prototype.toString = function() { return tsk_string_format("{0} {1} {2}", this.i_seq, this.i_cseq, this.s_method) }; tsip_header_RAck.prototype.Parse = function(m) { var f = 0; var k = 0; var v = m.length; var h = v; var w = tsk_buff_str2ib(m); var u; var b = new tsip_header_RAck(0, 0, null); f = tsip_machine_parser_header_RAck_start; var g, n, c, e, d, r, l; var o, j, a, q, t; var s; g = n = c = r = l = null; o = 0; j = 10; a = 15; q = 20; t = 30; s = 40; while (true) { _trigger_goto = false; if (o <= 0) { if (k == v) { o = t; continue } if (f == 0) { o = s; continue } } if (o <= j) { c = _tsip_machine_parser_header_RAck_key_offsets[f]; n = _tsip_machine_parser_header_RAck_index_offsets[f]; g = _tsip_machine_parser_header_RAck_single_lengths[f]; _break_match = false; do { if (g > 0) { _lower = c; _upper = c + g - 1; while (true) { if (_upper < _lower) { break } _mid = _lower + ((_upper - _lower) >> 1); if (w[k] < _tsip_machine_parser_header_RAck_trans_keys[_mid]) { _upper = _mid - 1 } else { if (w[k] > _tsip_machine_parser_header_RAck_trans_keys[_mid]) { _lower = _mid + 1 } else { n += (_mid - c); _break_match = true; break } } } if (_break_match) { break } c += g; n += g } g = _tsip_machine_parser_header_RAck_range_lengths[f]; if (g > 0) { _lower = c; _upper = c + (g << 1) - 2; while (true) { if (_upper < _lower) { break } _mid = _lower + (((_upper - _lower) >> 1) & ~1); if (w[k] < _tsip_machine_parser_header_RAck_trans_keys[_mid]) { _upper = _mid - 2 } else { if (w[k] > _tsip_machine_parser_header_RAck_trans_keys[_mid + 1]) { _lower = _mid + 2 } else { n += ((_mid - c) >> 1); _break_match = true; break } } } if (_break_match) { break } n += g } } while (false); n = _tsip_machine_parser_header_RAck_indicies[n]; f = _tsip_machine_parser_header_RAck_trans_targs[n]; if (_tsip_machine_parser_header_RAck_trans_actions[n] != 0) { r = _tsip_machine_parser_header_RAck_trans_actions[n]; l = _tsip_machine_parser_header_RAck_actions[r]; r += 1; while (l > 0) { l -= 1; r += 1; switch (_tsip_machine_parser_header_RAck_actions[r - 1]) { case 0: u = k; break; case 1: b.i_seq = tsk_ragel_parser_get_int(m, k, u); break; case 2: b.i_cseq = tsk_ragel_parser_get_int(m, k, u); break; case 3: b.s_method = tsk_ragel_parser_get_string(m, k, u); break; case 4: break } } } if (_trigger_goto) { continue } } if (o <= q) { if (f == 0) { o = s; continue } k += 1; if (k != v) { o = j; continue } } if (o <= t) {} if (o <= s) { break } } if (f < 22) { tsk_utils_log_error("Failed to parse 'RAck' header: " + m); return null } return b }; tsip_header_Refer_Sub.prototype = Object.create(tsip_header.prototype); _tsip_machine_parser_header_Refer_Sub_actions = [0, 1, 0, 1, 1, 1, 2, 1, 3, 1, 4]; _tsip_machine_parser_header_Refer_Sub_key_offsets = [0, 0, 2, 4, 6, 8, 10, 11, 13, 15, 17, 20, 27, 28, 30, 36, 38, 40, 42, 44, 48, 52, 53, 55, 58, 75, 76, 78, 94, 113, 118, 119, 121, 125, 144, 145, 147, 166, 167, 169, 172, 180, 181, 183, 187, 188, 194, 212, 219, 227, 235, 243, 245, 252, 261, 263, 266, 268, 271, 273, 276, 279, 280, 283, 284, 287, 288, 297, 306, 314, 322, 330, 338, 340, 346, 355, 364, 373, 375, 378, 381, 382, 383, 385, 387, 389, 393]; _tsip_machine_parser_header_Refer_Sub_trans_keys = [82, 114, 69, 101, 70, 102, 69, 101, 82, 114, 45, 83, 115, 85, 117, 66, 98, 9, 32, 58, 9, 13, 32, 70, 84, 102, 116, 10, 9, 32, 9, 32, 70, 84, 102, 116, 65, 97, 76, 108, 83, 115, 69, 101, 9, 13, 32, 59, 9, 13, 32, 59, 10, 9, 32, 9, 32, 59, 9, 13, 32, 33, 37, 39, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 10, 9, 32, 9, 32, 33, 37, 39, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 13, 32, 33, 37, 39, 59, 61, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 13, 32, 59, 61, 10, 9, 32, 9, 32, 59, 61, 9, 13, 32, 33, 34, 37, 39, 91, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 10, 9, 32, 9, 13, 32, 33, 34, 37, 39, 91, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 10, 9, 32, 9, 32, 34, 9, 13, 34, 92, 32, 126, 128, 255, 10, 9, 32, 9, 13, 32, 59, 10, 0, 9, 11, 12, 14, 127, 9, 13, 32, 33, 37, 39, 59, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 58, 48, 57, 65, 70, 97, 102, 58, 93, 48, 57, 65, 70, 97, 102, 58, 93, 48, 57, 65, 70, 97, 102, 58, 93, 48, 57, 65, 70, 97, 102, 58, 93, 58, 48, 57, 65, 70, 97, 102, 46, 58, 93, 48, 57, 65, 70, 97, 102, 48, 57, 46, 48, 57, 48, 57, 46, 48, 57, 48, 57, 93, 48, 57, 93, 48, 57, 93, 46, 48, 57, 46, 46, 48, 57, 46, 46, 58, 93, 48, 57, 65, 70, 97, 102, 46, 58, 93, 48, 57, 65, 70, 97, 102, 58, 93, 48, 57, 65, 70, 97, 102, 58, 93, 48, 57, 65, 70, 97, 102, 58, 93, 48, 57, 65, 70, 97, 102, 58, 93, 48, 57, 65, 70, 97, 102, 58, 93, 48, 57, 65, 70, 97, 102, 46, 58, 93, 48, 57, 65, 70, 97, 102, 46, 58, 93, 48, 57, 65, 70, 97, 102, 46, 58, 93, 48, 57, 65, 70, 97, 102, 48, 57, 46, 48, 57, 46, 48, 57, 46, 58, 82, 114, 85, 117, 69, 101, 9, 13, 32, 59, 0]; _tsip_machine_parser_header_Refer_Sub_single_lengths = [0, 2, 2, 2, 2, 2, 1, 2, 2, 2, 3, 7, 1, 2, 6, 2, 2, 2, 2, 4, 4, 1, 2, 3, 7, 1, 2, 6, 9, 5, 1, 2, 4, 9, 1, 2, 9, 1, 2, 3, 4, 1, 2, 4, 1, 0, 8, 1, 2, 2, 2, 2, 1, 3, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 3, 3, 2, 2, 2, 2, 2, 0, 3, 3, 3, 0, 1, 1, 1, 1, 2, 2, 2, 4, 0]; _tsip_machine_parser_header_Refer_Sub_range_lengths = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 5, 5, 0, 0, 0, 0, 5, 0, 0, 5, 0, 0, 0, 2, 0, 0, 0, 0, 3, 5, 3, 3, 3, 3, 0, 3, 3, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 3, 3, 3, 3, 3, 3, 0, 3, 3, 3, 3, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0]; _tsip_machine_parser_header_Refer_Sub_index_offsets = [0, 0, 3, 6, 9, 12, 15, 17, 20, 23, 26, 30, 38, 40, 43, 50, 53, 56, 59, 62, 67, 72, 74, 77, 81, 94, 96, 99, 111, 126, 132, 134, 137, 142, 157, 159, 162, 177, 179, 182, 186, 193, 195, 198, 203, 205, 209, 223, 228, 234, 240, 246, 249, 254, 261, 263, 266, 268, 271, 273, 276, 279, 281, 284, 286, 289, 291, 298, 305, 311, 317, 323, 329, 332, 336, 343, 350, 357, 359, 362, 365, 367, 369, 372, 375, 378, 383]; _tsip_machine_parser_header_Refer_Sub_indicies = [0, 0, 1, 2, 2, 1, 3, 3, 1, 4, 4, 1, 5, 5, 1, 6, 1, 7, 7, 1, 8, 8, 1, 9, 9, 1, 9, 9, 10, 1, 10, 11, 10, 12, 13, 12, 13, 1, 14, 1, 15, 15, 1, 15, 15, 12, 13, 12, 13, 1, 16, 16, 1, 17, 17, 1, 18, 18, 1, 19, 19, 1, 20, 21, 20, 22, 1, 23, 24, 23, 25, 1, 26, 1, 27, 27, 1, 27, 27, 25, 1, 25, 28, 25, 29, 29, 29, 29, 29, 29, 29, 29, 29, 1, 30, 1, 31, 31, 1, 31, 31, 29, 29, 29, 29, 29, 29, 29, 29, 29, 1, 32, 33, 32, 34, 34, 34, 35, 36, 34, 34, 34, 34, 34, 34, 1, 37, 38, 37, 25, 36, 1, 39, 1, 40, 40, 1, 40, 40, 25, 36, 1, 36, 41, 36, 42, 43, 42, 42, 44, 42, 42, 42, 42, 42, 42, 1, 45, 1, 46, 46, 1, 46, 47, 46, 42, 43, 42, 42, 44, 42, 42, 42, 42, 42, 42, 1, 48, 1, 49, 49, 1, 49, 49, 43, 1, 43, 50, 51, 52, 43, 43, 1, 53, 1, 43, 43, 1, 54, 33, 54, 35, 1, 55, 1, 43, 43, 43, 1, 54, 33, 54, 42, 42, 42, 35, 42, 42, 42, 42, 42, 42, 1, 57, 56, 56, 56, 1, 59, 51, 58, 58, 58, 1, 59, 51, 60, 60, 60, 1, 59, 51, 61, 61, 61, 1, 59, 51, 1, 63, 62, 56, 56, 1, 64, 59, 51, 65, 58, 58, 1, 66, 1, 67, 68, 1, 69, 1, 70, 71, 1, 72, 1, 51, 73, 1, 51, 74, 1, 51, 1, 70, 75, 1, 70, 1, 67, 76, 1, 67, 1, 64, 59, 51, 77, 60, 60, 1, 64, 59, 51, 61, 61, 61, 1, 79, 51, 78, 78, 78, 1, 81, 51, 80, 80, 80, 1, 81, 51, 82, 82, 82, 1, 81, 51, 83, 83, 83, 1, 81, 51, 1, 84, 78, 78, 1, 64, 81, 51, 85, 80, 80, 1, 64, 81, 51, 86, 82, 82, 1, 64, 81, 51, 83, 83, 83, 1, 87, 1, 64, 88, 1, 64, 89, 1, 64, 1, 63, 1, 90, 90, 1, 91, 91, 1, 92, 92, 1, 93, 94, 93, 95, 1, 1, 0]; _tsip_machine_parser_header_Refer_Sub_trans_targs = [2, 0, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 15, 82, 13, 14, 16, 17, 18, 19, 20, 44, 24, 20, 21, 24, 22, 23, 25, 28, 26, 27, 29, 44, 28, 24, 33, 29, 30, 31, 32, 34, 46, 40, 47, 35, 36, 37, 38, 39, 41, 43, 45, 42, 20, 86, 48, 81, 49, 52, 50, 51, 53, 68, 54, 66, 55, 56, 64, 57, 58, 62, 59, 60, 61, 63, 65, 67, 69, 77, 70, 73, 71, 72, 74, 75, 76, 78, 79, 80, 83, 84, 85, 20, 44, 24]; _tsip_machine_parser_header_Refer_Sub_trans_actions = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 5, 5, 5, 0, 0, 0, 0, 0, 0, 1, 0, 0, 7, 7, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3]; tsip_machine_parser_header_Refer_Sub_start = 1; tsip_machine_parser_header_Refer_Sub_first_final = 86; tsip_machine_parser_header_Refer_Sub_error = 0; tsip_machine_parser_header_Refer_Sub_en_main = 1; function tsip_header_Refer_Sub(a) { tsip_header.call(this, tsip_header_type_e.Refer_Sub); this.b_sub = a } tsip_header_Refer_Sub.prototype.toString = function() { return this.b_sub ? "true" : "false" }; tsip_header_Refer_Sub.prototype.Parse = function(m) { var e = 0; var k = 0; var v = m.length; var h = v; var w = tsk_buff_str2ib(m); var u; var g = new tsip_header_Refer_Sub(true); e = tsip_machine_parser_header_Refer_Sub_start; var f, n, b, d, c, r, l; var o, j, a, q, t; var s; f = n = b = r = l = null; o = 0; j = 10; a = 15; q = 20; t = 30; s = 40; while (true) { _trigger_goto = false; if (o <= 0) { if (k == v) { o = t; continue } if (e == 0) { o = s; continue } } if (o <= j) { b = _tsip_machine_parser_header_Refer_Sub_key_offsets[e]; n = _tsip_machine_parser_header_Refer_Sub_index_offsets[e]; f = _tsip_machine_parser_header_Refer_Sub_single_lengths[e]; _break_match = false; do { if (f > 0) { _lower = b; _upper = b + f - 1; while (true) { if (_upper < _lower) { break } _mid = _lower + ((_upper - _lower) >> 1); if (w[k] < _tsip_machine_parser_header_Refer_Sub_trans_keys[_mid]) { _upper = _mid - 1 } else { if (w[k] > _tsip_machine_parser_header_Refer_Sub_trans_keys[_mid]) { _lower = _mid + 1 } else { n += (_mid - b); _break_match = true; break } } } if (_break_match) { break } b += f; n += f } f = _tsip_machine_parser_header_Refer_Sub_range_lengths[e]; if (f > 0) { _lower = b; _upper = b + (f << 1) - 2; while (true) { if (_upper < _lower) { break } _mid = _lower + (((_upper - _lower) >> 1) & ~1); if (w[k] < _tsip_machine_parser_header_Refer_Sub_trans_keys[_mid]) { _upper = _mid - 2 } else { if (w[k] > _tsip_machine_parser_header_Refer_Sub_trans_keys[_mid + 1]) { _lower = _mid + 2 } else { n += ((_mid - b) >> 1); _break_match = true; break } } } if (_break_match) { break } n += f } } while (false); n = _tsip_machine_parser_header_Refer_Sub_indicies[n]; e = _tsip_machine_parser_header_Refer_Sub_trans_targs[n]; if (_tsip_machine_parser_header_Refer_Sub_trans_actions[n] != 0) { r = _tsip_machine_parser_header_Refer_Sub_trans_actions[n]; l = _tsip_machine_parser_header_Refer_Sub_actions[r]; r += 1; while (l > 0) { l -= 1; r += 1; switch (_tsip_machine_parser_header_Refer_Sub_actions[r - 1]) { case 0: u = k; break; case 1: g.b_sub = true; break; case 2: g.b_sub = false; break; case 3: tsk_ragel_add_param(m, k, u, g.ao_params); break; case 4: break } } } if (_trigger_goto) { continue } } if (o <= q) { if (e == 0) { o = s; continue } k += 1; if (k != v) { o = j; continue } } if (o <= t) {} if (o <= s) { break } } if (e < 86) { tsk_utils_log_error("Failed to parse 'Refer-Sub' header: " + m); return null } return g }; tsip_header_Session_Expires.prototype = Object.create(tsip_header.prototype); var TSIP_SESSION_EXPIRES_DEFAULT_VALUE = 1800; _tsip_machine_parser_header_Session_Expires_actions = [0, 1, 0, 1, 1, 1, 2, 1, 3, 1, 4, 1, 5]; _tsip_machine_parser_header_Session_Expires_key_offsets = [0, 0, 4, 6, 8, 10, 12, 14, 16, 17, 19, 21, 23, 25, 27, 29, 31, 34, 39, 40, 42, 46, 52, 56, 57, 59, 62, 81, 82, 84, 102, 121, 126, 127, 129, 133, 152, 153, 155, 174, 175, 177, 180, 188, 189, 191, 195, 196, 202, 220, 227, 235, 243, 251, 253, 260, 269, 271, 274, 276, 279, 281, 284, 287, 288, 291, 292, 295, 296, 305, 314, 322, 330, 338, 346, 348, 354, 363, 372, 381, 383, 386, 389, 390, 391, 412, 433, 454, 475, 496, 517, 538, 559, 578, 583, 584, 586, 590, 611, 612, 614, 635, 655, 677, 681, 685]; _tsip_machine_parser_header_Session_Expires_trans_keys = [83, 88, 115, 120, 69, 101, 83, 115, 83, 115, 73, 105, 79, 111, 78, 110, 45, 69, 101, 88, 120, 80, 112, 73, 105, 82, 114, 69, 101, 83, 115, 9, 32, 58, 9, 13, 32, 48, 57, 10, 9, 32, 9, 32, 48, 57, 9, 13, 32, 59, 48, 57, 9, 13, 32, 59, 10, 9, 32, 9, 32, 59, 9, 13, 32, 33, 37, 39, 82, 114, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 10, 9, 32, 9, 32, 33, 37, 39, 82, 114, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 13, 32, 33, 37, 39, 59, 61, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 13, 32, 59, 61, 10, 9, 32, 9, 32, 59, 61, 9, 13, 32, 33, 34, 37, 39, 91, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 10, 9, 32, 9, 13, 32, 33, 34, 37, 39, 91, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 10, 9, 32, 9, 32, 34, 9, 13, 34, 92, 32, 126, 128, 255, 10, 9, 32, 9, 13, 32, 59, 10, 0, 9, 11, 12, 14, 127, 9, 13, 32, 33, 37, 39, 59, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 58, 48, 57, 65, 70, 97, 102, 58, 93, 48, 57, 65, 70, 97, 102, 58, 93, 48, 57, 65, 70, 97, 102, 58, 93, 48, 57, 65, 70, 97, 102, 58, 93, 58, 48, 57, 65, 70, 97, 102, 46, 58, 93, 48, 57, 65, 70, 97, 102, 48, 57, 46, 48, 57, 48, 57, 46, 48, 57, 48, 57, 93, 48, 57, 93, 48, 57, 93, 46, 48, 57, 46, 46, 48, 57, 46, 46, 58, 93, 48, 57, 65, 70, 97, 102, 46, 58, 93, 48, 57, 65, 70, 97, 102, 58, 93, 48, 57, 65, 70, 97, 102, 58, 93, 48, 57, 65, 70, 97, 102, 58, 93, 48, 57, 65, 70, 97, 102, 58, 93, 48, 57, 65, 70, 97, 102, 58, 93, 48, 57, 65, 70, 97, 102, 46, 58, 93, 48, 57, 65, 70, 97, 102, 46, 58, 93, 48, 57, 65, 70, 97, 102, 46, 58, 93, 48, 57, 65, 70, 97, 102, 48, 57, 46, 48, 57, 46, 48, 57, 46, 58, 9, 13, 32, 33, 37, 39, 59, 61, 69, 101, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 13, 32, 33, 37, 39, 59, 61, 70, 102, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 13, 32, 33, 37, 39, 59, 61, 82, 114, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 13, 32, 33, 37, 39, 59, 61, 69, 101, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 13, 32, 33, 37, 39, 59, 61, 83, 115, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 13, 32, 33, 37, 39, 59, 61, 72, 104, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 13, 32, 33, 37, 39, 59, 61, 69, 101, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 13, 32, 33, 37, 39, 59, 61, 82, 114, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 13, 32, 33, 37, 39, 59, 61, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 13, 32, 59, 61, 10, 9, 32, 9, 32, 59, 61, 9, 13, 32, 33, 34, 37, 39, 85, 91, 117, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 10, 9, 32, 9, 13, 32, 33, 34, 37, 39, 85, 91, 117, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 13, 32, 33, 37, 39, 59, 65, 97, 126, 42, 43, 45, 46, 48, 57, 66, 90, 95, 122, 9, 13, 32, 33, 37, 39, 59, 67, 83, 99, 115, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 13, 32, 59, 9, 13, 32, 59, 0]; _tsip_machine_parser_header_Session_Expires_single_lengths = [0, 4, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 3, 3, 1, 2, 2, 4, 4, 1, 2, 3, 9, 1, 2, 8, 9, 5, 1, 2, 4, 9, 1, 2, 9, 1, 2, 3, 4, 1, 2, 4, 1, 0, 8, 1, 2, 2, 2, 2, 1, 3, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 3, 3, 2, 2, 2, 2, 2, 0, 3, 3, 3, 0, 1, 1, 1, 1, 11, 11, 11, 11, 11, 11, 11, 11, 9, 5, 1, 2, 4, 11, 1, 2, 11, 10, 12, 4, 4, 0]; _tsip_machine_parser_header_Session_Expires_range_lengths = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 5, 0, 0, 5, 5, 0, 0, 0, 0, 5, 0, 0, 5, 0, 0, 0, 2, 0, 0, 0, 0, 3, 5, 3, 3, 3, 3, 0, 3, 3, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 3, 3, 3, 3, 3, 3, 0, 3, 3, 3, 3, 1, 1, 1, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 5, 0, 0, 5, 5, 5, 0, 0, 0]; _tsip_machine_parser_header_Session_Expires_index_offsets = [0, 0, 5, 8, 11, 14, 17, 20, 23, 25, 28, 31, 34, 37, 40, 43, 46, 50, 55, 57, 60, 64, 70, 75, 77, 80, 84, 99, 101, 104, 118, 133, 139, 141, 144, 149, 164, 166, 169, 184, 186, 189, 193, 200, 202, 205, 210, 212, 216, 230, 235, 241, 247, 253, 256, 261, 268, 270, 273, 275, 278, 280, 283, 286, 288, 291, 293, 296, 298, 305, 312, 318, 324, 330, 336, 339, 343, 350, 357, 364, 366, 369, 372, 374, 376, 393, 410, 427, 444, 461, 478, 495, 512, 527, 533, 535, 538, 543, 560, 562, 565, 582, 598, 616, 621, 626]; _tsip_machine_parser_header_Session_Expires_indicies = [0, 2, 0, 2, 1, 3, 3, 1, 4, 4, 1, 5, 5, 1, 6, 6, 1, 7, 7, 1, 8, 8, 1, 9, 1, 10, 10, 1, 11, 11, 1, 12, 12, 1, 13, 13, 1, 14, 14, 1, 15, 15, 1, 2, 2, 1, 2, 2, 16, 1, 16, 17, 16, 18, 1, 19, 1, 20, 20, 1, 20, 20, 18, 1, 21, 22, 21, 24, 23, 1, 25, 26, 25, 27, 1, 28, 1, 29, 29, 1, 29, 29, 27, 1, 27, 30, 27, 31, 31, 31, 32, 32, 31, 31, 31, 31, 31, 31, 1, 33, 1, 34, 34, 1, 34, 34, 31, 31, 31, 32, 32, 31, 31, 31, 31, 31, 31, 1, 35, 36, 35, 37, 37, 37, 38, 39, 37, 37, 37, 37, 37, 37, 1, 40, 41, 40, 27, 39, 1, 42, 1, 43, 43, 1, 43, 43, 27, 39, 1, 39, 44, 39, 45, 46, 45, 45, 47, 45, 45, 45, 45, 45, 45, 1, 48, 1, 49, 49, 1, 49, 50, 49, 45, 46, 45, 45, 47, 45, 45, 45, 45, 45, 45, 1, 51, 1, 52, 52, 1, 52, 52, 46, 1, 46, 53, 54, 55, 46, 46, 1, 56, 1, 46, 46, 1, 57, 36, 57, 38, 1, 58, 1, 46, 46, 46, 1, 57, 36, 57, 45, 45, 45, 38, 45, 45, 45, 45, 45, 45, 1, 60, 59, 59, 59, 1, 62, 54, 61, 61, 61, 1, 62, 54, 63, 63, 63, 1, 62, 54, 64, 64, 64, 1, 62, 54, 1, 66, 65, 59, 59, 1, 67, 62, 54, 68, 61, 61, 1, 69, 1, 70, 71, 1, 72, 1, 73, 74, 1, 75, 1, 54, 76, 1, 54, 77, 1, 54, 1, 73, 78, 1, 73, 1, 70, 79, 1, 70, 1, 67, 62, 54, 80, 63, 63, 1, 67, 62, 54, 64, 64, 64, 1, 82, 54, 81, 81, 81, 1, 84, 54, 83, 83, 83, 1, 84, 54, 85, 85, 85, 1, 84, 54, 86, 86, 86, 1, 84, 54, 1, 87, 81, 81, 1, 67, 84, 54, 88, 83, 83, 1, 67, 84, 54, 89, 85, 85, 1, 67, 84, 54, 86, 86, 86, 1, 90, 1, 67, 91, 1, 67, 92, 1, 67, 1, 66, 1, 35, 36, 35, 37, 37, 37, 38, 39, 93, 93, 37, 37, 37, 37, 37, 37, 1, 35, 36, 35, 37, 37, 37, 38, 39, 94, 94, 37, 37, 37, 37, 37, 37, 1, 35, 36, 35, 37, 37, 37, 38, 39, 95, 95, 37, 37, 37, 37, 37, 37, 1, 35, 36, 35, 37, 37, 37, 38, 39, 96, 96, 37, 37, 37, 37, 37, 37, 1, 35, 36, 35, 37, 37, 37, 38, 39, 97, 97, 37, 37, 37, 37, 37, 37, 1, 35, 36, 35, 37, 37, 37, 38, 39, 98, 98, 37, 37, 37, 37, 37, 37, 1, 35, 36, 35, 37, 37, 37, 38, 39, 99, 99, 37, 37, 37, 37, 37, 37, 1, 35, 36, 35, 37, 37, 37, 38, 39, 100, 100, 37, 37, 37, 37, 37, 37, 1, 101, 36, 101, 37, 37, 37, 38, 102, 37, 37, 37, 37, 37, 37, 1, 103, 104, 103, 27, 102, 1, 105, 1, 106, 106, 1, 106, 106, 27, 102, 1, 102, 107, 102, 45, 46, 45, 45, 108, 47, 108, 45, 45, 45, 45, 45, 45, 1, 109, 1, 110, 110, 1, 110, 50, 110, 45, 46, 45, 45, 108, 47, 108, 45, 45, 45, 45, 45, 45, 1, 57, 36, 57, 45, 45, 45, 38, 111, 111, 45, 45, 45, 45, 45, 45, 1, 57, 36, 57, 45, 45, 45, 38, 112, 113, 112, 113, 45, 45, 45, 45, 45, 45, 1, 114, 115, 114, 116, 1, 117, 118, 117, 119, 1, 1, 0]; _tsip_machine_parser_header_Session_Expires_trans_targs = [2, 0, 16, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 17, 18, 21, 19, 20, 22, 46, 21, 26, 22, 23, 26, 24, 25, 27, 30, 84, 28, 29, 31, 46, 30, 26, 35, 31, 32, 33, 34, 36, 48, 42, 49, 37, 38, 39, 40, 41, 43, 45, 47, 44, 22, 105, 50, 83, 51, 54, 52, 53, 55, 70, 56, 68, 57, 58, 66, 59, 60, 64, 61, 62, 63, 65, 67, 69, 71, 79, 72, 75, 73, 74, 76, 77, 78, 80, 81, 82, 85, 86, 87, 88, 89, 90, 91, 92, 93, 97, 93, 94, 95, 96, 98, 101, 99, 100, 102, 103, 104, 22, 46, 26, 22, 46, 26]; _tsip_machine_parser_header_Session_Expires_trans_actions = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 3, 3, 0, 3, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 9, 9, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 7, 7, 7, 5, 5, 5]; tsip_machine_parser_header_Session_Expires_start = 1; tsip_machine_parser_header_Session_Expires_first_final = 105; tsip_machine_parser_header_Session_Expires_error = 0; tsip_machine_parser_header_Session_Expires_en_main = 1; function tsip_header_Session_Expires(b, a) { tsip_header.call(this, tsip_header_type_e.Session_Expires); this.i_delta_seconds = b; this.b_refresher_uas = a } tsip_header_Session_Expires.prototype.toString = function() { if (this.i_delta_seconds >= 0) { return tsk_string_format("{0};refresher={1}", this.i_delta_seconds, this.b_refresher_uas ? "uas" : "uac") } return null }; tsip_header_Session_Expires.prototype.Parse = function(m) { var e = 0; var k = 0; var v = m.length; var h = v; var w = tsk_buff_str2ib(m); var u; var g = new tsip_header_Session_Expires(TSIP_SESSION_EXPIRES_DEFAULT_VALUE, false); e = tsip_machine_parser_header_Session_Expires_start; var f, n, b, d, c, r, l; var o, j, a, q, t; var s; f = n = b = r = l = null; o = 0; j = 10; a = 15; q = 20; t = 30; s = 40; while (true) { _trigger_goto = false; if (o <= 0) { if (k == v) { o = t; continue } if (e == 0) { o = s; continue } } if (o <= j) { b = _tsip_machine_parser_header_Session_Expires_key_offsets[e]; n = _tsip_machine_parser_header_Session_Expires_index_offsets[e]; f = _tsip_machine_parser_header_Session_Expires_single_lengths[e]; _break_match = false; do { if (f > 0) { _lower = b; _upper = b + f - 1; while (true) { if (_upper < _lower) { break } _mid = _lower + ((_upper - _lower) >> 1); if (w[k] < _tsip_machine_parser_header_Session_Expires_trans_keys[_mid]) { _upper = _mid - 1 } else { if (w[k] > _tsip_machine_parser_header_Session_Expires_trans_keys[_mid]) { _lower = _mid + 1 } else { n += (_mid - b); _break_match = true; break } } } if (_break_match) { break } b += f; n += f } f = _tsip_machine_parser_header_Session_Expires_range_lengths[e]; if (f > 0) { _lower = b; _upper = b + (f << 1) - 2; while (true) { if (_upper < _lower) { break } _mid = _lower + (((_upper - _lower) >> 1) & ~1); if (w[k] < _tsip_machine_parser_header_Session_Expires_trans_keys[_mid]) { _upper = _mid - 2 } else { if (w[k] > _tsip_machine_parser_header_Session_Expires_trans_keys[_mid + 1]) { _lower = _mid + 2 } else { n += ((_mid - b) >> 1); _break_match = true; break } } } if (_break_match) { break } n += f } } while (false); n = _tsip_machine_parser_header_Session_Expires_indicies[n]; e = _tsip_machine_parser_header_Session_Expires_trans_targs[n]; if (_tsip_machine_parser_header_Session_Expires_trans_actions[n] != 0) { r = _tsip_machine_parser_header_Session_Expires_trans_actions[n]; l = _tsip_machine_parser_header_Session_Expires_actions[r]; r += 1; while (l > 0) { l -= 1; r += 1; switch (_tsip_machine_parser_header_Session_Expires_actions[r - 1]) { case 0: u = k; break; case 1: g.i_delta_seconds = tsk_ragel_parser_get_int(m, k, u); break; case 2: g.b_refresher_uas = true; break; case 3: g.b_refresher_uas = false; break; case 4: tsk_ragel_add_param(m, k, u, g.ao_params); break; case 5: break } } } if (_trigger_goto) { continue } } if (o <= q) { if (e == 0) { o = s; continue } k += 1; if (k != v) { o = j; continue } } if (o <= t) {} if (o <= s) { break } } if (e < 105) { tsk_utils_log_error("Failed to parse 'Session-Expires' header: " + m); return null } return g }; tsip_header_Subscription_State.prototype = Object.create(tsip_header.prototype); _tsip_machine_parser_header_Subscription_State_actions = [0, 1, 0, 1, 1, 1, 2, 1, 3, 1, 4, 1, 5, 1, 6]; _tsip_machine_parser_header_Subscription_State_key_offsets = [0, 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 25, 27, 29, 31, 33, 35, 38, 55, 56, 58, 74, 92, 96, 97, 99, 102, 123, 124, 126, 146, 165, 170, 171, 173, 177, 196, 197, 199, 218, 219, 221, 224, 232, 233, 235, 239, 240, 246, 264, 271, 279, 287, 295, 297, 304, 313, 315, 318, 320, 323, 325, 328, 331, 332, 335, 336, 339, 340, 349, 358, 366, 374, 382, 390, 392, 398, 407, 416, 425, 427, 430, 433, 434, 435, 456, 477, 498, 519, 540, 561, 580, 585, 586, 588, 592, 611, 612, 614, 633, 639, 660, 683, 704, 725, 746, 765, 770, 771, 773, 777, 796, 797, 799, 818, 836, 857, 878, 897, 918, 939, 960, 981, 1002, 1021, 1026, 1027, 1029, 1033, 1052, 1053, 1055, 1074, 1080]; _tsip_machine_parser_header_Subscription_State_trans_keys = [83, 115, 85, 117, 66, 98, 83, 115, 67, 99, 82, 114, 73, 105, 80, 112, 84, 116, 73, 105, 79, 111, 78, 110, 45, 83, 115, 84, 116, 65, 97, 84, 116, 69, 101, 9, 32, 58, 9, 13, 32, 33, 37, 39, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 10, 9, 32, 9, 32, 33, 37, 39, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 13, 32, 33, 37, 39, 59, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 13, 32, 59, 10, 9, 32, 9, 32, 59, 9, 13, 32, 33, 37, 39, 69, 82, 101, 114, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 10, 9, 32, 9, 32, 33, 37, 39, 69, 82, 101, 114, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 13, 32, 33, 37, 39, 59, 61, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 13, 32, 59, 61, 10, 9, 32, 9, 32, 59, 61, 9, 13, 32, 33, 34, 37, 39, 91, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 10, 9, 32, 9, 13, 32, 33, 34, 37, 39, 91, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 10, 9, 32, 9, 32, 34, 9, 13, 34, 92, 32, 126, 128, 255, 10, 9, 32, 9, 13, 32, 59, 10, 0, 9, 11, 12, 14, 127, 9, 13, 32, 33, 37, 39, 59, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 58, 48, 57, 65, 70, 97, 102, 58, 93, 48, 57, 65, 70, 97, 102, 58, 93, 48, 57, 65, 70, 97, 102, 58, 93, 48, 57, 65, 70, 97, 102, 58, 93, 58, 48, 57, 65, 70, 97, 102, 46, 58, 93, 48, 57, 65, 70, 97, 102, 48, 57, 46, 48, 57, 48, 57, 46, 48, 57, 48, 57, 93, 48, 57, 93, 48, 57, 93, 46, 48, 57, 46, 46, 48, 57, 46, 46, 58, 93, 48, 57, 65, 70, 97, 102, 46, 58, 93, 48, 57, 65, 70, 97, 102, 58, 93, 48, 57, 65, 70, 97, 102, 58, 93, 48, 57, 65, 70, 97, 102, 58, 93, 48, 57, 65, 70, 97, 102, 58, 93, 48, 57, 65, 70, 97, 102, 58, 93, 48, 57, 65, 70, 97, 102, 46, 58, 93, 48, 57, 65, 70, 97, 102, 46, 58, 93, 48, 57, 65, 70, 97, 102, 46, 58, 93, 48, 57, 65, 70, 97, 102, 48, 57, 46, 48, 57, 46, 48, 57, 46, 58, 9, 13, 32, 33, 37, 39, 59, 61, 88, 120, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 13, 32, 33, 37, 39, 59, 61, 80, 112, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 13, 32, 33, 37, 39, 59, 61, 73, 105, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 13, 32, 33, 37, 39, 59, 61, 82, 114, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 13, 32, 33, 37, 39, 59, 61, 69, 101, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 13, 32, 33, 37, 39, 59, 61, 83, 115, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 13, 32, 33, 37, 39, 59, 61, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 13, 32, 59, 61, 10, 9, 32, 9, 32, 59, 61, 9, 13, 32, 33, 34, 37, 39, 91, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 10, 9, 32, 9, 13, 32, 33, 34, 37, 39, 91, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 13, 32, 59, 48, 57, 9, 13, 32, 33, 37, 39, 59, 61, 69, 101, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 13, 32, 33, 37, 39, 59, 61, 65, 84, 97, 116, 126, 42, 43, 45, 46, 48, 57, 66, 90, 95, 122, 9, 13, 32, 33, 37, 39, 59, 61, 83, 115, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 13, 32, 33, 37, 39, 59, 61, 79, 111, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 13, 32, 33, 37, 39, 59, 61, 78, 110, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 13, 32, 33, 37, 39, 59, 61, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 13, 32, 59, 61, 10, 9, 32, 9, 32, 59, 61, 9, 13, 32, 33, 34, 37, 39, 91, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 10, 9, 32, 9, 13, 32, 33, 34, 37, 39, 91, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 13, 32, 33, 37, 39, 59, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 13, 32, 33, 37, 39, 59, 61, 82, 114, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 13, 32, 33, 37, 39, 59, 61, 89, 121, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 13, 32, 33, 37, 39, 45, 46, 59, 61, 126, 42, 43, 48, 57, 65, 90, 95, 122, 9, 13, 32, 33, 37, 39, 59, 61, 65, 97, 126, 42, 43, 45, 46, 48, 57, 66, 90, 95, 122, 9, 13, 32, 33, 37, 39, 59, 61, 70, 102, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 13, 32, 33, 37, 39, 59, 61, 84, 116, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 13, 32, 33, 37, 39, 59, 61, 69, 101, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 13, 32, 33, 37, 39, 59, 61, 82, 114, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 13, 32, 33, 37, 39, 59, 61, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 13, 32, 59, 61, 10, 9, 32, 9, 32, 59, 61, 9, 13, 32, 33, 34, 37, 39, 91, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 10, 9, 32, 9, 13, 32, 33, 34, 37, 39, 91, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 13, 32, 59, 48, 57, 0]; _tsip_machine_parser_header_Subscription_State_single_lengths = [0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 3, 7, 1, 2, 6, 8, 4, 1, 2, 3, 11, 1, 2, 10, 9, 5, 1, 2, 4, 9, 1, 2, 9, 1, 2, 3, 4, 1, 2, 4, 1, 0, 8, 1, 2, 2, 2, 2, 1, 3, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 3, 3, 2, 2, 2, 2, 2, 0, 3, 3, 3, 0, 1, 1, 1, 1, 11, 11, 11, 11, 11, 11, 9, 5, 1, 2, 4, 9, 1, 2, 9, 4, 11, 13, 11, 11, 11, 9, 5, 1, 2, 4, 9, 1, 2, 9, 8, 11, 11, 11, 11, 11, 11, 11, 11, 9, 5, 1, 2, 4, 9, 1, 2, 9, 4, 0]; _tsip_machine_parser_header_Subscription_State_range_lengths = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 5, 5, 0, 0, 0, 0, 5, 0, 0, 5, 5, 0, 0, 0, 0, 5, 0, 0, 5, 0, 0, 0, 2, 0, 0, 0, 0, 3, 5, 3, 3, 3, 3, 0, 3, 3, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 3, 3, 3, 3, 3, 3, 0, 3, 3, 3, 3, 1, 1, 1, 0, 0, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 5, 0, 0, 5, 1, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 5, 0, 0, 5, 5, 5, 5, 4, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 5, 0, 0, 5, 1, 0]; _tsip_machine_parser_header_Subscription_State_index_offsets = [0, 0, 3, 6, 9, 12, 15, 18, 21, 24, 27, 30, 33, 36, 38, 41, 44, 47, 50, 53, 57, 70, 72, 75, 87, 101, 106, 108, 111, 115, 132, 134, 137, 153, 168, 174, 176, 179, 184, 199, 201, 204, 219, 221, 224, 228, 235, 237, 240, 245, 247, 251, 265, 270, 276, 282, 288, 291, 296, 303, 305, 308, 310, 313, 315, 318, 321, 323, 326, 328, 331, 333, 340, 347, 353, 359, 365, 371, 374, 378, 385, 392, 399, 401, 404, 407, 409, 411, 428, 445, 462, 479, 496, 513, 528, 534, 536, 539, 544, 559, 561, 564, 579, 585, 602, 621, 638, 655, 672, 687, 693, 695, 698, 703, 718, 720, 723, 738, 752, 769, 786, 802, 819, 836, 853, 870, 887, 902, 908, 910, 913, 918, 933, 935, 938, 953, 959]; _tsip_machine_parser_header_Subscription_State_indicies = [0, 0, 1, 2, 2, 1, 3, 3, 1, 4, 4, 1, 5, 5, 1, 6, 6, 1, 7, 7, 1, 8, 8, 1, 9, 9, 1, 10, 10, 1, 11, 11, 1, 12, 12, 1, 13, 1, 14, 14, 1, 15, 15, 1, 16, 16, 1, 17, 17, 1, 18, 18, 1, 18, 18, 19, 1, 19, 20, 19, 21, 21, 21, 21, 21, 21, 21, 21, 21, 1, 22, 1, 23, 23, 1, 23, 23, 21, 21, 21, 21, 21, 21, 21, 21, 21, 1, 24, 25, 24, 26, 26, 26, 27, 26, 26, 26, 26, 26, 26, 1, 28, 29, 28, 30, 1, 31, 1, 32, 32, 1, 32, 32, 30, 1, 30, 33, 30, 34, 34, 34, 35, 36, 35, 36, 34, 34, 34, 34, 34, 34, 1, 37, 1, 38, 38, 1, 38, 38, 34, 34, 34, 35, 36, 35, 36, 34, 34, 34, 34, 34, 34, 1, 39, 40, 39, 41, 41, 41, 42, 43, 41, 41, 41, 41, 41, 41, 1, 44, 45, 44, 30, 43, 1, 46, 1, 47, 47, 1, 47, 47, 30, 43, 1, 43, 48, 43, 49, 50, 49, 49, 51, 49, 49, 49, 49, 49, 49, 1, 52, 1, 53, 53, 1, 53, 54, 53, 49, 50, 49, 49, 51, 49, 49, 49, 49, 49, 49, 1, 55, 1, 56, 56, 1, 56, 56, 50, 1, 50, 57, 58, 59, 50, 50, 1, 60, 1, 50, 50, 1, 61, 40, 61, 42, 1, 62, 1, 50, 50, 50, 1, 61, 40, 61, 49, 49, 49, 42, 49, 49, 49, 49, 49, 49, 1, 64, 63, 63, 63, 1, 66, 58, 65, 65, 65, 1, 66, 58, 67, 67, 67, 1, 66, 58, 68, 68, 68, 1, 66, 58, 1, 70, 69, 63, 63, 1, 71, 66, 58, 72, 65, 65, 1, 73, 1, 74, 75, 1, 76, 1, 77, 78, 1, 79, 1, 58, 80, 1, 58, 81, 1, 58, 1, 77, 82, 1, 77, 1, 74, 83, 1, 74, 1, 71, 66, 58, 84, 67, 67, 1, 71, 66, 58, 68, 68, 68, 1, 86, 58, 85, 85, 85, 1, 88, 58, 87, 87, 87, 1, 88, 58, 89, 89, 89, 1, 88, 58, 90, 90, 90, 1, 88, 58, 1, 91, 85, 85, 1, 71, 88, 58, 92, 87, 87, 1, 71, 88, 58, 93, 89, 89, 1, 71, 88, 58, 90, 90, 90, 1, 94, 1, 71, 95, 1, 71, 96, 1, 71, 1, 70, 1, 39, 40, 39, 41, 41, 41, 42, 43, 97, 97, 41, 41, 41, 41, 41, 41, 1, 39, 40, 39, 41, 41, 41, 42, 43, 98, 98, 41, 41, 41, 41, 41, 41, 1, 39, 40, 39, 41, 41, 41, 42, 43, 99, 99, 41, 41, 41, 41, 41, 41, 1, 39, 40, 39, 41, 41, 41, 42, 43, 100, 100, 41, 41, 41, 41, 41, 41, 1, 39, 40, 39, 41, 41, 41, 42, 43, 101, 101, 41, 41, 41, 41, 41, 41, 1, 39, 40, 39, 41, 41, 41, 42, 43, 102, 102, 41, 41, 41, 41, 41, 41, 1, 103, 40, 103, 41, 41, 41, 42, 104, 41, 41, 41, 41, 41, 41, 1, 105, 106, 105, 30, 104, 1, 107, 1, 108, 108, 1, 108, 108, 30, 104, 1, 104, 109, 104, 49, 50, 49, 49, 51, 49, 49, 49, 110, 49, 49, 1, 111, 1, 112, 112, 1, 112, 54, 112, 49, 50, 49, 49, 51, 49, 49, 49, 110, 49, 49, 1, 113, 114, 113, 116, 115, 1, 39, 40, 39, 41, 41, 41, 42, 43, 117, 117, 41, 41, 41, 41, 41, 41, 1, 39, 40, 39, 41, 41, 41, 42, 43, 118, 119, 118, 119, 41, 41, 41, 41, 41, 41, 1, 39, 40, 39, 41, 41, 41, 42, 43, 120, 120, 41, 41, 41, 41, 41, 41, 1, 39, 40, 39, 41, 41, 41, 42, 43, 121, 121, 41, 41, 41, 41, 41, 41, 1, 39, 40, 39, 41, 41, 41, 42, 43, 122, 122, 41, 41, 41, 41, 41, 41, 1, 123, 40, 123, 41, 41, 41, 42, 124, 41, 41, 41, 41, 41, 41, 1, 125, 126, 125, 30, 124, 1, 127, 1, 128, 128, 1, 128, 128, 30, 124, 1, 124, 129, 124, 130, 50, 130, 130, 51, 130, 130, 130, 130, 130, 130, 1, 131, 1, 132, 132, 1, 132, 54, 132, 130, 50, 130, 130, 51, 130, 130, 130, 130, 130, 130, 1, 133, 134, 133, 135, 135, 135, 136, 135, 135, 135, 135, 135, 135, 1, 39, 40, 39, 41, 41, 41, 42, 43, 137, 137, 41, 41, 41, 41, 41, 41, 1, 39, 40, 39, 41, 41, 41, 42, 43, 138, 138, 41, 41, 41, 41, 41, 41, 1, 39, 40, 39, 41, 41, 41, 139, 41, 42, 43, 41, 41, 41, 41, 41, 1, 39, 40, 39, 41, 41, 41, 42, 43, 140, 140, 41, 41, 41, 41, 41, 41, 1, 39, 40, 39, 41, 41, 41, 42, 43, 141, 141, 41, 41, 41, 41, 41, 41, 1, 39, 40, 39, 41, 41, 41, 42, 43, 142, 142, 41, 41, 41, 41, 41, 41, 1, 39, 40, 39, 41, 41, 41, 42, 43, 143, 143, 41, 41, 41, 41, 41, 41, 1, 39, 40, 39, 41, 41, 41, 42, 43, 144, 144, 41, 41, 41, 41, 41, 41, 1, 145, 40, 145, 41, 41, 41, 42, 146, 41, 41, 41, 41, 41, 41, 1, 147, 148, 147, 30, 146, 1, 149, 1, 150, 150, 1, 150, 150, 30, 146, 1, 146, 151, 146, 49, 50, 49, 49, 51, 49, 49, 49, 152, 49, 49, 1, 153, 1, 154, 154, 1, 154, 54, 154, 49, 50, 49, 49, 51, 49, 49, 49, 152, 49, 49, 1, 155, 156, 155, 158, 157, 1, 1, 0]; _tsip_machine_parser_header_Subscription_State_trans_targs = [2, 0, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 24, 22, 23, 25, 49, 24, 29, 25, 26, 29, 27, 28, 30, 33, 87, 103, 31, 32, 34, 49, 33, 29, 38, 34, 35, 36, 37, 39, 51, 45, 52, 40, 41, 42, 43, 44, 46, 48, 50, 47, 25, 136, 53, 86, 54, 57, 55, 56, 58, 73, 59, 71, 60, 61, 69, 62, 63, 67, 64, 65, 66, 68, 70, 72, 74, 82, 75, 78, 76, 77, 79, 80, 81, 83, 84, 85, 88, 89, 90, 91, 92, 93, 94, 98, 94, 95, 96, 97, 99, 102, 100, 101, 25, 49, 102, 29, 104, 105, 118, 106, 107, 108, 109, 113, 109, 110, 111, 112, 114, 117, 115, 116, 25, 49, 117, 29, 119, 120, 121, 122, 123, 124, 125, 126, 127, 131, 127, 128, 129, 130, 132, 135, 133, 134, 25, 49, 135, 29]; _tsip_machine_parser_header_Subscription_State_trans_actions = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 3, 3, 0, 3, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 11, 11, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 1, 0, 0, 7, 7, 0, 7, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 1, 0, 0, 5, 5, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 1, 0, 0, 9, 9, 0, 9]; tsip_machine_parser_header_Subscription_State_start = 1; tsip_machine_parser_header_Subscription_State_first_final = 136; tsip_machine_parser_header_Subscription_State_error = 0; tsip_machine_parser_header_Subscription_State_en_main = 1; function tsip_header_Subscription_State(d, b, c, a) { tsip_header.call(this, tsip_header_type_e.Subscription_State); this.s_state = d; this.s_reason = b; this.i_expires = c; this.i_retry_after = a } tsip_header_Subscription_State.prototype.toString = function() { var a = tsk_string_format("{0}{1}{2}", this.s_state, this.s_reason ? ";reason=" : "", this.s_reason ? this.s_reason : ""); if (this.i_expires >= 0) { a += tsk_string_format(";expires={0}", this.i_expires) } if (this.i_retry_after >= 0) { a += tsk_string_format(";retry-after={0}", this.i_retry_after) } return a }; tsip_header_Subscription_State.prototype.Parse = function(m) { var e = 0; var k = 0; var v = m.length; var h = v; var w = tsk_buff_str2ib(m); var u; var g = new tsip_header_Subscription_State(null, null, -1, -1); e = tsip_machine_parser_header_Subscription_State_start; var f, n, b, d, c, r, l; var o, j, a, q, t; var s; f = n = b = r = l = null; o = 0; j = 10; a = 15; q = 20; t = 30; s = 40; while (true) { _trigger_goto = false; if (o <= 0) { if (k == v) { o = t; continue } if (e == 0) { o = s; continue } } if (o <= j) { b = _tsip_machine_parser_header_Subscription_State_key_offsets[e]; n = _tsip_machine_parser_header_Subscription_State_index_offsets[e]; f = _tsip_machine_parser_header_Subscription_State_single_lengths[e]; _break_match = false; do { if (f > 0) { _lower = b; _upper = b + f - 1; while (true) { if (_upper < _lower) { break } _mid = _lower + ((_upper - _lower) >> 1); if (w[k] < _tsip_machine_parser_header_Subscription_State_trans_keys[_mid]) { _upper = _mid - 1 } else { if (w[k] > _tsip_machine_parser_header_Subscription_State_trans_keys[_mid]) { _lower = _mid + 1 } else { n += (_mid - b); _break_match = true; break } } } if (_break_match) { break } b += f; n += f } f = _tsip_machine_parser_header_Subscription_State_range_lengths[e]; if (f > 0) { _lower = b; _upper = b + (f << 1) - 2; while (true) { if (_upper < _lower) { break } _mid = _lower + (((_upper - _lower) >> 1) & ~1); if (w[k] < _tsip_machine_parser_header_Subscription_State_trans_keys[_mid]) { _upper = _mid - 2 } else { if (w[k] > _tsip_machine_parser_header_Subscription_State_trans_keys[_mid + 1]) { _lower = _mid + 2 } else { n += ((_mid - b) >> 1); _break_match = true; break } } } if (_break_match) { break } n += f } } while (false); n = _tsip_machine_parser_header_Subscription_State_indicies[n]; e = _tsip_machine_parser_header_Subscription_State_trans_targs[n]; if (_tsip_machine_parser_header_Subscription_State_trans_actions[n] != 0) { r = _tsip_machine_parser_header_Subscription_State_trans_actions[n]; l = _tsip_machine_parser_header_Subscription_State_actions[r]; r += 1; while (l > 0) { l -= 1; r += 1; switch (_tsip_machine_parser_header_Subscription_State_actions[r - 1]) { case 0: u = k; break; case 1: g.s_state = tsk_ragel_parser_get_string(m, k, u); break; case 2: g.s_reason = tsk_ragel_parser_get_string(m, k, u); break; case 3: g.i_expires = tsk_ragel_parser_get_int(m, k, u); break; case 4: g.i_retry_after = tsk_ragel_parser_get_int(m, k, u); break; case 5: tsk_ragel_add_param(m, k, u, g.ao_params); break; case 6: break } } } if (_trigger_goto) { continue } } if (o <= q) { if (e == 0) { o = s; continue } k += 1; if (k != v) { o = j; continue } } if (o <= t) {} if (o <= s) { break } } if (e < 136) { tsk_utils_log_error("Failed to parse 'Subscription-State' header: " + m); return null } return g }; tsip_header_Via.prototype = Object.create(tsip_header.prototype); tsip_header_Via.prototype.__s_proto_name_default = "SIP"; tsip_header_Via.prototype.__s_proto_version_default = "2.0"; _tsip_machine_parser_header_Via_actions = [0, 1, 0, 1, 2, 1, 3, 1, 4, 1, 5, 1, 6, 1, 7, 1, 8, 1, 9, 1, 10, 1, 11, 1, 13, 1, 14, 1, 16, 2, 1, 0, 2, 4, 15, 2, 5, 15, 2, 7, 15, 2, 8, 15, 2, 9, 15, 2, 10, 15, 2, 11, 15, 2, 12, 13, 2, 13, 15, 2, 14, 15, 3, 12, 13, 15]; _tsip_machine_parser_header_Via_key_offsets = [0, 0, 2, 7, 10, 27, 28, 30, 46, 62, 66, 67, 69, 72, 89, 90, 92, 108, 124, 128, 129, 131, 134, 151, 152, 154, 170, 187, 197, 198, 200, 209, 217, 224, 232, 238, 252, 258, 259, 261, 266, 271, 272, 274, 278, 285, 290, 291, 293, 297, 324, 325, 327, 353, 371, 377, 378, 380, 385, 404, 405, 407, 426, 427, 429, 432, 440, 441, 443, 448, 449, 455, 472, 479, 487, 495, 503, 505, 512, 521, 523, 526, 528, 531, 533, 536, 539, 540, 543, 544, 547, 548, 557, 566, 574, 582, 590, 598, 600, 606, 615, 624, 633, 635, 638, 641, 642, 643, 663, 683, 703, 723, 743, 761, 767, 768, 770, 775, 794, 795, 797, 816, 833, 853, 873, 893, 911, 917, 918, 920, 925, 944, 945, 947, 966, 983, 1003, 1023, 1043, 1063, 1081, 1087, 1088, 1090, 1095, 1116, 1117, 1119, 1140, 1161, 1181, 1202, 1221, 1234, 1241, 1252, 1260, 1267, 1273, 1292, 1313, 1332, 1353, 1372, 1385, 1398, 1411, 1432, 1453, 1474, 1495, 1516, 1537, 1544, 1552, 1560, 1568, 1570, 1577, 1586, 1588, 1591, 1593, 1596, 1598, 1601, 1604, 1605, 1610, 1613, 1614, 1617, 1618, 1627, 1636, 1644, 1652, 1660, 1668, 1670, 1676, 1685, 1694, 1703, 1705, 1708, 1711, 1712, 1713, 1735, 1755, 1775, 1795, 1815, 1835, 1855, 1873, 1879, 1880, 1882, 1887, 1913, 1914, 1916, 1942, 1955, 1957, 1960, 1962, 1965, 1967, 1974, 1981, 1986, 1989, 1990, 1993, 1994, 2007, 2020, 2026, 2033, 2045, 2057, 2069, 2081, 2087, 2093, 2106, 2119, 2132, 2134, 2137, 2140, 2141, 2153, 2165, 2177, 2178, 2198, 2218, 2238, 2244, 2250, 2251, 2253, 2258, 2263, 2264, 2266, 2270, 2277, 2297, 2317, 2335, 2341, 2342, 2344, 2349, 2368, 2369, 2371, 2390, 2397, 2404, 2409, 2416, 2428, 2434, 2442, 2448, 2456, 2462, 2476, 2490, 2504, 2512, 2520, 2528, 2536, 2544, 2552, 2559, 2567, 2575, 2583, 2585, 2592, 2601, 2603, 2606, 2608, 2611, 2613, 2616, 2619, 2620, 2626, 2629, 2630, 2633, 2634, 2643, 2652, 2660, 2668, 2676, 2684, 2686, 2692, 2701, 2710, 2719, 2721, 2724, 2727, 2728, 2729, 2731]; _tsip_machine_parser_header_Via_trans_keys = [86, 118, 9, 32, 58, 73, 105, 9, 32, 58, 9, 13, 32, 33, 37, 39, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 10, 9, 32, 9, 32, 33, 37, 39, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 13, 32, 33, 37, 39, 47, 126, 42, 43, 45, 57, 65, 90, 95, 122, 9, 13, 32, 47, 10, 9, 32, 9, 32, 47, 9, 13, 32, 33, 37, 39, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 10, 9, 32, 9, 32, 33, 37, 39, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 13, 32, 33, 37, 39, 47, 126, 42, 43, 45, 57, 65, 90, 95, 122, 9, 13, 32, 47, 10, 9, 32, 9, 32, 47, 9, 13, 32, 33, 37, 39, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 10, 9, 32, 9, 32, 33, 37, 39, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 13, 32, 33, 37, 39, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 13, 32, 91, 48, 57, 65, 90, 97, 122, 10, 9, 32, 9, 32, 91, 48, 57, 65, 90, 97, 122, 45, 46, 48, 57, 65, 90, 97, 122, 45, 48, 57, 65, 90, 97, 122, 45, 46, 48, 57, 65, 90, 97, 122, 48, 57, 65, 90, 97, 122, 9, 13, 32, 44, 45, 46, 58, 59, 48, 57, 65, 90, 97, 122, 9, 13, 32, 44, 58, 59, 10, 9, 32, 9, 32, 44, 58, 59, 9, 13, 32, 48, 57, 10, 9, 32, 9, 32, 48, 57, 9, 13, 32, 44, 59, 48, 57, 9, 13, 32, 44, 59, 10, 9, 32, 9, 32, 44, 59, 9, 13, 32, 33, 37, 39, 66, 67, 77, 82, 84, 98, 99, 109, 114, 116, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 10, 9, 32, 9, 32, 33, 37, 39, 66, 67, 77, 82, 84, 98, 99, 109, 114, 116, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 13, 32, 33, 37, 39, 44, 59, 61, 126, 42, 46, 48, 57, 65, 90, 95, 122, 9, 13, 32, 44, 59, 61, 10, 9, 32, 9, 32, 44, 59, 61, 9, 13, 32, 33, 34, 37, 39, 91, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 10, 9, 32, 9, 13, 32, 33, 34, 37, 39, 91, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 10, 9, 32, 9, 32, 34, 9, 13, 34, 92, 32, 126, 128, 255, 10, 9, 32, 9, 13, 32, 44, 59, 10, 0, 9, 11, 12, 14, 127, 9, 13, 32, 33, 37, 39, 44, 59, 126, 42, 46, 48, 57, 65, 90, 95, 122, 58, 48, 57, 65, 70, 97, 102, 58, 93, 48, 57, 65, 70, 97, 102, 58, 93, 48, 57, 65, 70, 97, 102, 58, 93, 48, 57, 65, 70, 97, 102, 58, 93, 58, 48, 57, 65, 70, 97, 102, 46, 58, 93, 48, 57, 65, 70, 97, 102, 48, 57, 46, 48, 57, 48, 57, 46, 48, 57, 48, 57, 93, 48, 57, 93, 48, 57, 93, 46, 48, 57, 46, 46, 48, 57, 46, 46, 58, 93, 48, 57, 65, 70, 97, 102, 46, 58, 93, 48, 57, 65, 70, 97, 102, 58, 93, 48, 57, 65, 70, 97, 102, 58, 93, 48, 57, 65, 70, 97, 102, 58, 93, 48, 57, 65, 70, 97, 102, 58, 93, 48, 57, 65, 70, 97, 102, 58, 93, 48, 57, 65, 70, 97, 102, 46, 58, 93, 48, 57, 65, 70, 97, 102, 46, 58, 93, 48, 57, 65, 70, 97, 102, 46, 58, 93, 48, 57, 65, 70, 97, 102, 48, 57, 46, 48, 57, 46, 48, 57, 46, 58, 9, 13, 32, 33, 37, 39, 44, 59, 61, 82, 114, 126, 42, 46, 48, 57, 65, 90, 95, 122, 9, 13, 32, 33, 37, 39, 44, 59, 61, 65, 97, 126, 42, 46, 48, 57, 66, 90, 95, 122, 9, 13, 32, 33, 37, 39, 44, 59, 61, 78, 110, 126, 42, 46, 48, 57, 65, 90, 95, 122, 9, 13, 32, 33, 37, 39, 44, 59, 61, 67, 99, 126, 42, 46, 48, 57, 65, 90, 95, 122, 9, 13, 32, 33, 37, 39, 44, 59, 61, 72, 104, 126, 42, 46, 48, 57, 65, 90, 95, 122, 9, 13, 32, 33, 37, 39, 44, 59, 61, 126, 42, 46, 48, 57, 65, 90, 95, 122, 9, 13, 32, 44, 59, 61, 10, 9, 32, 9, 32, 44, 59, 61, 9, 13, 32, 33, 34, 37, 39, 91, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 10, 9, 32, 9, 13, 32, 33, 34, 37, 39, 91, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 13, 32, 33, 37, 39, 44, 59, 126, 42, 46, 48, 57, 65, 90, 95, 122, 9, 13, 32, 33, 37, 39, 44, 59, 61, 79, 111, 126, 42, 46, 48, 57, 65, 90, 95, 122, 9, 13, 32, 33, 37, 39, 44, 59, 61, 77, 109, 126, 42, 46, 48, 57, 65, 90, 95, 122, 9, 13, 32, 33, 37, 39, 44, 59, 61, 80, 112, 126, 42, 46, 48, 57, 65, 90, 95, 122, 9, 13, 32, 33, 37, 39, 44, 59, 61, 126, 42, 46, 48, 57, 65, 90, 95, 122, 9, 13, 32, 44, 59, 61, 10, 9, 32, 9, 32, 44, 59, 61, 9, 13, 32, 33, 34, 37, 39, 91, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 10, 9, 32, 9, 13, 32, 33, 34, 37, 39, 91, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 13, 32, 33, 37, 39, 44, 59, 126, 42, 46, 48, 57, 65, 90, 95, 122, 9, 13, 32, 33, 37, 39, 44, 59, 61, 65, 97, 126, 42, 46, 48, 57, 66, 90, 95, 122, 9, 13, 32, 33, 37, 39, 44, 59, 61, 68, 100, 126, 42, 46, 48, 57, 65, 90, 95, 122, 9, 13, 32, 33, 37, 39, 44, 59, 61, 68, 100, 126, 42, 46, 48, 57, 65, 90, 95, 122, 9, 13, 32, 33, 37, 39, 44, 59, 61, 82, 114, 126, 42, 46, 48, 57, 65, 90, 95, 122, 9, 13, 32, 33, 37, 39, 44, 59, 61, 126, 42, 46, 48, 57, 65, 90, 95, 122, 9, 13, 32, 44, 59, 61, 10, 9, 32, 9, 32, 44, 59, 61, 9, 13, 32, 33, 34, 37, 39, 91, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 96, 97, 122, 10, 9, 32, 9, 13, 32, 33, 34, 37, 39, 91, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 96, 97, 122, 9, 13, 32, 33, 37, 39, 44, 45, 46, 59, 126, 42, 43, 48, 57, 65, 90, 95, 96, 97, 122, 9, 13, 32, 33, 37, 39, 44, 45, 59, 126, 42, 46, 48, 57, 65, 90, 95, 96, 97, 122, 9, 13, 32, 33, 37, 39, 44, 45, 46, 59, 126, 42, 43, 48, 57, 65, 90, 95, 96, 97, 122, 9, 13, 32, 33, 37, 39, 44, 59, 126, 42, 46, 48, 57, 65, 90, 95, 96, 97, 122, 9, 13, 32, 44, 45, 46, 59, 48, 57, 65, 90, 97, 122, 45, 48, 57, 65, 90, 97, 122, 9, 13, 32, 44, 59, 48, 57, 65, 90, 97, 122, 45, 46, 48, 57, 65, 90, 97, 122, 45, 48, 57, 65, 90, 97, 122, 48, 57, 65, 90, 97, 122, 9, 13, 32, 33, 37, 39, 44, 59, 126, 42, 46, 48, 57, 65, 90, 95, 96, 97, 122, 9, 13, 32, 33, 37, 39, 44, 45, 46, 59, 126, 42, 43, 48, 57, 65, 90, 95, 96, 97, 122, 9, 13, 32, 33, 37, 39, 44, 59, 126, 42, 46, 48, 57, 65, 90, 95, 96, 97, 122, 9, 13, 32, 33, 37, 39, 44, 45, 46, 59, 126, 42, 43, 48, 57, 65, 90, 95, 96, 97, 122, 9, 13, 32, 33, 37, 39, 44, 59, 126, 42, 46, 48, 57, 65, 90, 95, 96, 97, 122, 9, 13, 32, 44, 45, 46, 59, 48, 57, 65, 90, 97, 122, 9, 13, 32, 44, 45, 46, 59, 48, 57, 65, 90, 97, 122, 9, 13, 32, 44, 45, 46, 59, 48, 57, 65, 90, 97, 122, 9, 13, 32, 33, 37, 39, 44, 45, 46, 59, 126, 42, 43, 48, 57, 65, 90, 95, 96, 97, 122, 9, 13, 32, 33, 37, 39, 44, 45, 46, 59, 126, 42, 43, 48, 57, 65, 90, 95, 96, 97, 122, 9, 13, 32, 33, 37, 39, 44, 45, 46, 59, 126, 42, 43, 48, 57, 65, 90, 95, 96, 97, 122, 9, 13, 32, 33, 37, 39, 44, 45, 46, 59, 126, 42, 43, 48, 57, 65, 90, 95, 96, 97, 122, 9, 13, 32, 33, 37, 39, 44, 45, 46, 59, 126, 42, 43, 48, 57, 65, 90, 95, 96, 97, 122, 9, 13, 32, 33, 37, 39, 44, 45, 46, 59, 126, 42, 43, 48, 57, 65, 90, 95, 96, 97, 122, 58, 48, 57, 65, 70, 97, 102, 58, 93, 48, 57, 65, 70, 97, 102, 58, 93, 48, 57, 65, 70, 97, 102, 58, 93, 48, 57, 65, 70, 97, 102, 58, 93, 58, 48, 57, 65, 70, 97, 102, 46, 58, 93, 48, 57, 65, 70, 97, 102, 48, 57, 46, 48, 57, 48, 57, 46, 48, 57, 48, 57, 93, 48, 57, 93, 48, 57, 93, 9, 13, 32, 44, 59, 46, 48, 57, 46, 46, 48, 57, 46, 46, 58, 93, 48, 57, 65, 70, 97, 102, 46, 58, 93, 48, 57, 65, 70, 97, 102, 58, 93, 48, 57, 65, 70, 97, 102, 58, 93, 48, 57, 65, 70, 97, 102, 58, 93, 48, 57, 65, 70, 97, 102, 58, 93, 48, 57, 65, 70, 97, 102, 58, 93, 48, 57, 65, 70, 97, 102, 46, 58, 93, 48, 57, 65, 70, 97, 102, 46, 58, 93, 48, 57, 65, 70, 97, 102, 46, 58, 93, 48, 57, 65, 70, 97, 102, 48, 57, 46, 48, 57, 46, 48, 57, 46, 58, 9, 13, 32, 33, 37, 39, 44, 59, 61, 69, 80, 101, 112, 126, 42, 46, 48, 57, 65, 90, 95, 122, 9, 13, 32, 33, 37, 39, 44, 59, 61, 67, 99, 126, 42, 46, 48, 57, 65, 90, 95, 122, 9, 13, 32, 33, 37, 39, 44, 59, 61, 69, 101, 126, 42, 46, 48, 57, 65, 90, 95, 122, 9, 13, 32, 33, 37, 39, 44, 59, 61, 73, 105, 126, 42, 46, 48, 57, 65, 90, 95, 122, 9, 13, 32, 33, 37, 39, 44, 59, 61, 86, 118, 126, 42, 46, 48, 57, 65, 90, 95, 122, 9, 13, 32, 33, 37, 39, 44, 59, 61, 69, 101, 126, 42, 46, 48, 57, 65, 90, 95, 122, 9, 13, 32, 33, 37, 39, 44, 59, 61, 68, 100, 126, 42, 46, 48, 57, 65, 90, 95, 122, 9, 13, 32, 33, 37, 39, 44, 59, 61, 126, 42, 46, 48, 57, 65, 90, 95, 122, 9, 13, 32, 44, 59, 61, 10, 9, 32, 9, 32, 44, 59, 61, 9, 13, 32, 33, 34, 37, 39, 58, 91, 126, 42, 43, 45, 46, 48, 57, 65, 70, 71, 90, 95, 96, 97, 102, 103, 122, 10, 9, 32, 9, 13, 32, 33, 34, 37, 39, 58, 91, 126, 42, 43, 45, 46, 48, 57, 65, 70, 71, 90, 95, 96, 97, 102, 103, 122, 9, 13, 32, 44, 46, 58, 59, 48, 57, 65, 70, 97, 102, 48, 57, 46, 48, 57, 48, 57, 46, 48, 57, 48, 57, 9, 13, 32, 44, 59, 48, 57, 9, 13, 32, 44, 59, 48, 57, 9, 13, 32, 44, 59, 46, 48, 57, 46, 46, 48, 57, 46, 9, 13, 32, 44, 46, 58, 59, 48, 57, 65, 70, 97, 102, 9, 13, 32, 44, 46, 58, 59, 48, 57, 65, 70, 97, 102, 9, 13, 32, 44, 58, 59, 58, 48, 57, 65, 70, 97, 102, 9, 13, 32, 44, 58, 59, 48, 57, 65, 70, 97, 102, 9, 13, 32, 44, 58, 59, 48, 57, 65, 70, 97, 102, 9, 13, 32, 44, 58, 59, 48, 57, 65, 70, 97, 102, 9, 13, 32, 44, 58, 59, 48, 57, 65, 70, 97, 102, 9, 13, 32, 44, 58, 59, 48, 57, 65, 70, 97, 102, 9, 13, 32, 44, 46, 58, 59, 48, 57, 65, 70, 97, 102, 9, 13, 32, 44, 46, 58, 59, 48, 57, 65, 70, 97, 102, 9, 13, 32, 44, 46, 58, 59, 48, 57, 65, 70, 97, 102, 48, 57, 46, 48, 57, 46, 48, 57, 46, 9, 13, 32, 44, 58, 59, 48, 57, 65, 70, 97, 102, 9, 13, 32, 44, 58, 59, 48, 57, 65, 70, 97, 102, 9, 13, 32, 44, 58, 59, 48, 57, 65, 70, 97, 102, 58, 9, 13, 32, 33, 37, 39, 44, 59, 61, 79, 111, 126, 42, 46, 48, 57, 65, 90, 95, 122, 9, 13, 32, 33, 37, 39, 44, 59, 61, 82, 114, 126, 42, 46, 48, 57, 65, 90, 95, 122, 9, 13, 32, 33, 37, 39, 44, 59, 61, 84, 116, 126, 42, 46, 48, 57, 65, 90, 95, 122, 9, 13, 32, 44, 59, 61, 9, 13, 32, 44, 59, 61, 10, 9, 32, 9, 32, 44, 59, 61, 9, 13, 32, 48, 57, 10, 9, 32, 9, 32, 48, 57, 9, 13, 32, 44, 59, 48, 57, 9, 13, 32, 33, 37, 39, 44, 59, 61, 84, 116, 126, 42, 46, 48, 57, 65, 90, 95, 122, 9, 13, 32, 33, 37, 39, 44, 59, 61, 76, 108, 126, 42, 46, 48, 57, 65, 90, 95, 122, 9, 13, 32, 33, 37, 39, 44, 59, 61, 126, 42, 46, 48, 57, 65, 90, 95, 122, 9, 13, 32, 44, 59, 61, 10, 9, 32, 9, 32, 44, 59, 61, 9, 13, 32, 33, 34, 37, 39, 91, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 10, 9, 32, 9, 13, 32, 33, 34, 37, 39, 91, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 13, 32, 44, 59, 48, 57, 9, 13, 32, 44, 59, 48, 57, 9, 13, 32, 44, 59, 45, 48, 57, 65, 90, 97, 122, 9, 13, 32, 44, 58, 59, 48, 57, 65, 90, 97, 122, 48, 57, 65, 90, 97, 122, 45, 46, 48, 57, 65, 90, 97, 122, 48, 57, 65, 90, 97, 122, 45, 46, 48, 57, 65, 90, 97, 122, 48, 57, 65, 90, 97, 122, 9, 13, 32, 44, 45, 46, 58, 59, 48, 57, 65, 90, 97, 122, 9, 13, 32, 44, 45, 46, 58, 59, 48, 57, 65, 90, 97, 122, 9, 13, 32, 44, 45, 46, 58, 59, 48, 57, 65, 90, 97, 122, 45, 46, 48, 57, 65, 90, 97, 122, 45, 46, 48, 57, 65, 90, 97, 122, 45, 46, 48, 57, 65, 90, 97, 122, 45, 46, 48, 57, 65, 90, 97, 122, 45, 46, 48, 57, 65, 90, 97, 122, 45, 46, 48, 57, 65, 90, 97, 122, 58, 48, 57, 65, 70, 97, 102, 58, 93, 48, 57, 65, 70, 97, 102, 58, 93, 48, 57, 65, 70, 97, 102, 58, 93, 48, 57, 65, 70, 97, 102, 58, 93, 58, 48, 57, 65, 70, 97, 102, 46, 58, 93, 48, 57, 65, 70, 97, 102, 48, 57, 46, 48, 57, 48, 57, 46, 48, 57, 48, 57, 93, 48, 57, 93, 48, 57, 93, 9, 13, 32, 44, 58, 59, 46, 48, 57, 46, 46, 48, 57, 46, 46, 58, 93, 48, 57, 65, 70, 97, 102, 46, 58, 93, 48, 57, 65, 70, 97, 102, 58, 93, 48, 57, 65, 70, 97, 102, 58, 93, 48, 57, 65, 70, 97, 102, 58, 93, 48, 57, 65, 70, 97, 102, 58, 93, 48, 57, 65, 70, 97, 102, 58, 93, 48, 57, 65, 70, 97, 102, 46, 58, 93, 48, 57, 65, 70, 97, 102, 46, 58, 93, 48, 57, 65, 70, 97, 102, 46, 58, 93, 48, 57, 65, 70, 97, 102, 48, 57, 46, 48, 57, 46, 48, 57, 46, 58, 65, 97, 0]; _tsip_machine_parser_header_Via_single_lengths = [0, 2, 5, 3, 7, 1, 2, 6, 8, 4, 1, 2, 3, 7, 1, 2, 6, 8, 4, 1, 2, 3, 7, 1, 2, 6, 7, 4, 1, 2, 3, 2, 1, 2, 0, 8, 6, 1, 2, 5, 3, 1, 2, 2, 5, 5, 1, 2, 4, 17, 1, 2, 16, 10, 6, 1, 2, 5, 9, 1, 2, 9, 1, 2, 3, 4, 1, 2, 5, 1, 0, 9, 1, 2, 2, 2, 2, 1, 3, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 3, 3, 2, 2, 2, 2, 2, 0, 3, 3, 3, 0, 1, 1, 1, 1, 12, 12, 12, 12, 12, 10, 6, 1, 2, 5, 9, 1, 2, 9, 9, 12, 12, 12, 10, 6, 1, 2, 5, 9, 1, 2, 9, 9, 12, 12, 12, 12, 10, 6, 1, 2, 5, 9, 1, 2, 9, 11, 10, 11, 9, 7, 1, 5, 2, 1, 0, 9, 11, 9, 11, 9, 7, 7, 7, 11, 11, 11, 11, 11, 11, 1, 2, 2, 2, 2, 1, 3, 0, 1, 0, 1, 0, 1, 1, 1, 5, 1, 1, 1, 1, 3, 3, 2, 2, 2, 2, 2, 0, 3, 3, 3, 0, 1, 1, 1, 1, 14, 12, 12, 12, 12, 12, 12, 10, 6, 1, 2, 5, 10, 1, 2, 10, 7, 0, 1, 0, 1, 0, 5, 5, 5, 1, 1, 1, 1, 7, 7, 6, 1, 6, 6, 6, 6, 6, 0, 7, 7, 7, 0, 1, 1, 1, 6, 6, 6, 1, 12, 12, 12, 6, 6, 1, 2, 5, 3, 1, 2, 2, 5, 12, 12, 10, 6, 1, 2, 5, 9, 1, 2, 9, 5, 5, 5, 1, 6, 0, 2, 0, 2, 0, 8, 8, 8, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 3, 0, 1, 0, 1, 0, 1, 1, 1, 6, 1, 1, 1, 1, 3, 3, 2, 2, 2, 2, 2, 0, 3, 3, 3, 0, 1, 1, 1, 1, 2, 0]; _tsip_machine_parser_header_Via_range_lengths = [0, 0, 0, 0, 5, 0, 0, 5, 4, 0, 0, 0, 0, 5, 0, 0, 5, 4, 0, 0, 0, 0, 5, 0, 0, 5, 5, 3, 0, 0, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 5, 0, 0, 5, 4, 0, 0, 0, 0, 5, 0, 0, 5, 0, 0, 0, 2, 0, 0, 0, 0, 3, 4, 3, 3, 3, 3, 0, 3, 3, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 3, 3, 3, 3, 3, 3, 0, 3, 3, 3, 3, 1, 1, 1, 0, 0, 4, 4, 4, 4, 4, 4, 0, 0, 0, 0, 5, 0, 0, 5, 4, 4, 4, 4, 4, 0, 0, 0, 0, 5, 0, 0, 5, 4, 4, 4, 4, 4, 4, 0, 0, 0, 0, 6, 0, 0, 6, 5, 5, 5, 5, 3, 3, 3, 3, 3, 3, 5, 5, 5, 5, 5, 3, 3, 3, 5, 5, 5, 5, 5, 5, 3, 3, 3, 3, 0, 3, 3, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 1, 0, 3, 3, 3, 3, 3, 3, 0, 3, 3, 3, 3, 1, 1, 1, 0, 0, 4, 4, 4, 4, 4, 4, 4, 4, 0, 0, 0, 0, 8, 0, 0, 8, 3, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 3, 3, 0, 3, 3, 3, 3, 3, 0, 3, 3, 3, 3, 1, 1, 1, 0, 3, 3, 3, 0, 4, 4, 4, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 4, 4, 4, 0, 0, 0, 0, 5, 0, 0, 5, 1, 1, 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 3, 3, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 1, 0, 3, 3, 3, 3, 3, 3, 0, 3, 3, 3, 3, 1, 1, 1, 0, 0, 0, 0]; _tsip_machine_parser_header_Via_index_offsets = [0, 0, 3, 9, 13, 26, 28, 31, 43, 56, 61, 63, 66, 70, 83, 85, 88, 100, 113, 118, 120, 123, 127, 140, 142, 145, 157, 170, 178, 180, 183, 190, 196, 201, 207, 211, 223, 230, 232, 235, 241, 246, 248, 251, 255, 262, 268, 270, 273, 278, 301, 303, 306, 328, 343, 350, 352, 355, 361, 376, 378, 381, 396, 398, 401, 405, 412, 414, 417, 423, 425, 429, 443, 448, 454, 460, 466, 469, 474, 481, 483, 486, 488, 491, 493, 496, 499, 501, 504, 506, 509, 511, 518, 525, 531, 537, 543, 549, 552, 556, 563, 570, 577, 579, 582, 585, 587, 589, 606, 623, 640, 657, 674, 689, 696, 698, 701, 707, 722, 724, 727, 742, 756, 773, 790, 807, 822, 829, 831, 834, 840, 855, 857, 860, 875, 889, 906, 923, 940, 957, 972, 979, 981, 984, 990, 1006, 1008, 1011, 1027, 1044, 1060, 1077, 1092, 1103, 1108, 1117, 1123, 1128, 1132, 1147, 1164, 1179, 1196, 1211, 1222, 1233, 1244, 1261, 1278, 1295, 1312, 1329, 1346, 1351, 1357, 1363, 1369, 1372, 1377, 1384, 1386, 1389, 1391, 1394, 1396, 1399, 1402, 1404, 1410, 1413, 1415, 1418, 1420, 1427, 1434, 1440, 1446, 1452, 1458, 1461, 1465, 1472, 1479, 1486, 1488, 1491, 1494, 1496, 1498, 1517, 1534, 1551, 1568, 1585, 1602, 1619, 1634, 1641, 1643, 1646, 1652, 1671, 1673, 1676, 1695, 1706, 1708, 1711, 1713, 1716, 1718, 1725, 1732, 1738, 1741, 1743, 1746, 1748, 1759, 1770, 1777, 1782, 1792, 1802, 1812, 1822, 1829, 1833, 1844, 1855, 1866, 1868, 1871, 1874, 1876, 1886, 1896, 1906, 1908, 1925, 1942, 1959, 1966, 1973, 1975, 1978, 1984, 1989, 1991, 1994, 1998, 2005, 2022, 2039, 2054, 2061, 2063, 2066, 2072, 2087, 2089, 2092, 2107, 2114, 2121, 2127, 2132, 2142, 2146, 2152, 2156, 2162, 2166, 2178, 2190, 2202, 2208, 2214, 2220, 2226, 2232, 2238, 2243, 2249, 2255, 2261, 2264, 2269, 2276, 2278, 2281, 2283, 2286, 2288, 2291, 2294, 2296, 2303, 2306, 2308, 2311, 2313, 2320, 2327, 2333, 2339, 2345, 2351, 2354, 2358, 2365, 2372, 2379, 2381, 2384, 2387, 2389, 2391, 2394]; _tsip_machine_parser_header_Via_indicies = [0, 0, 1, 2, 2, 3, 4, 4, 1, 2, 2, 3, 1, 3, 5, 3, 6, 6, 6, 6, 6, 6, 6, 6, 6, 1, 7, 1, 8, 8, 1, 8, 8, 6, 6, 6, 6, 6, 6, 6, 6, 6, 1, 9, 10, 9, 11, 11, 11, 12, 11, 11, 11, 11, 11, 1, 13, 14, 13, 15, 1, 16, 1, 17, 17, 1, 17, 17, 15, 1, 15, 18, 15, 19, 19, 19, 19, 19, 19, 19, 19, 19, 1, 20, 1, 21, 21, 1, 21, 21, 19, 19, 19, 19, 19, 19, 19, 19, 19, 1, 22, 23, 22, 24, 24, 24, 25, 24, 24, 24, 24, 24, 1, 26, 27, 26, 28, 1, 29, 1, 30, 30, 1, 30, 30, 28, 1, 28, 31, 28, 32, 32, 32, 32, 32, 32, 32, 32, 32, 1, 33, 1, 34, 34, 1, 34, 34, 32, 32, 32, 32, 32, 32, 32, 32, 32, 1, 35, 36, 35, 37, 37, 37, 37, 37, 37, 37, 37, 37, 1, 38, 39, 38, 42, 40, 41, 41, 1, 43, 1, 44, 44, 1, 44, 44, 42, 40, 41, 41, 1, 45, 46, 47, 48, 48, 1, 45, 48, 48, 48, 1, 45, 49, 48, 48, 48, 1, 48, 50, 50, 1, 51, 52, 51, 53, 54, 55, 56, 57, 50, 50, 50, 1, 58, 59, 58, 3, 60, 61, 1, 62, 1, 63, 63, 1, 63, 63, 3, 60, 61, 1, 60, 64, 60, 65, 1, 66, 1, 67, 67, 1, 67, 67, 65, 1, 68, 69, 68, 70, 72, 71, 1, 73, 74, 73, 3, 61, 1, 75, 1, 76, 76, 1, 76, 76, 3, 61, 1, 61, 77, 61, 78, 78, 78, 79, 80, 81, 82, 83, 79, 80, 81, 82, 83, 78, 78, 78, 78, 78, 78, 1, 84, 1, 85, 85, 1, 85, 85, 78, 78, 78, 79, 80, 81, 82, 83, 79, 80, 81, 82, 83, 78, 78, 78, 78, 78, 78, 1, 86, 87, 86, 88, 88, 88, 89, 90, 91, 88, 88, 88, 88, 88, 1, 92, 93, 92, 3, 61, 91, 1, 94, 1, 95, 95, 1, 95, 95, 3, 61, 91, 1, 91, 96, 91, 97, 98, 97, 97, 99, 97, 97, 97, 97, 97, 97, 1, 100, 1, 101, 101, 1, 101, 102, 101, 97, 98, 97, 97, 99, 97, 97, 97, 97, 97, 97, 1, 103, 1, 104, 104, 1, 104, 104, 98, 1, 98, 105, 106, 107, 98, 98, 1, 108, 1, 98, 98, 1, 109, 87, 109, 89, 90, 1, 110, 1, 98, 98, 98, 1, 109, 87, 109, 97, 97, 97, 89, 90, 97, 97, 97, 97, 97, 1, 112, 111, 111, 111, 1, 114, 106, 113, 113, 113, 1, 114, 106, 115, 115, 115, 1, 114, 106, 116, 116, 116, 1, 114, 106, 1, 118, 117, 111, 111, 1, 119, 114, 106, 120, 113, 113, 1, 121, 1, 122, 123, 1, 124, 1, 125, 126, 1, 127, 1, 106, 128, 1, 106, 129, 1, 106, 1, 125, 130, 1, 125, 1, 122, 131, 1, 122, 1, 119, 114, 106, 132, 115, 115, 1, 119, 114, 106, 116, 116, 116, 1, 134, 106, 133, 133, 133, 1, 136, 106, 135, 135, 135, 1, 136, 106, 137, 137, 137, 1, 136, 106, 138, 138, 138, 1, 136, 106, 1, 139, 133, 133, 1, 119, 136, 106, 140, 135, 135, 1, 119, 136, 106, 141, 137, 137, 1, 119, 136, 106, 138, 138, 138, 1, 142, 1, 119, 143, 1, 119, 144, 1, 119, 1, 118, 1, 86, 87, 86, 88, 88, 88, 89, 90, 91, 145, 145, 88, 88, 88, 88, 88, 1, 86, 87, 86, 88, 88, 88, 89, 90, 91, 146, 146, 88, 88, 88, 88, 88, 1, 86, 87, 86, 88, 88, 88, 89, 90, 91, 147, 147, 88, 88, 88, 88, 88, 1, 86, 87, 86, 88, 88, 88, 89, 90, 91, 148, 148, 88, 88, 88, 88, 88, 1, 86, 87, 86, 88, 88, 88, 89, 90, 91, 149, 149, 88, 88, 88, 88, 88, 1, 150, 87, 150, 88, 88, 88, 89, 90, 151, 88, 88, 88, 88, 88, 1, 152, 153, 152, 3, 61, 151, 1, 154, 1, 155, 155, 1, 155, 155, 3, 61, 151, 1, 151, 156, 151, 157, 98, 157, 157, 99, 157, 157, 157, 157, 157, 157, 1, 158, 1, 159, 159, 1, 159, 102, 159, 157, 98, 157, 157, 99, 157, 157, 157, 157, 157, 157, 1, 160, 161, 160, 162, 162, 162, 163, 164, 162, 162, 162, 162, 162, 1, 86, 87, 86, 88, 88, 88, 89, 90, 91, 165, 165, 88, 88, 88, 88, 88, 1, 86, 87, 86, 88, 88, 88, 89, 90, 91, 166, 166, 88, 88, 88, 88, 88, 1, 86, 87, 86, 88, 88, 88, 89, 90, 91, 167, 167, 88, 88, 88, 88, 88, 1, 168, 87, 168, 88, 88, 88, 89, 90, 169, 88, 88, 88, 88, 88, 1, 170, 171, 170, 3, 61, 169, 1, 172, 1, 173, 173, 1, 173, 173, 3, 61, 169, 1, 169, 174, 169, 175, 98, 175, 175, 99, 175, 175, 175, 175, 175, 175, 1, 176, 1, 177, 177, 1, 177, 102, 177, 175, 98, 175, 175, 99, 175, 175, 175, 175, 175, 175, 1, 178, 179, 178, 180, 180, 180, 181, 182, 180, 180, 180, 180, 180, 1, 86, 87, 86, 88, 88, 88, 89, 90, 91, 183, 183, 88, 88, 88, 88, 88, 1, 86, 87, 86, 88, 88, 88, 89, 90, 91, 184, 184, 88, 88, 88, 88, 88, 1, 86, 87, 86, 88, 88, 88, 89, 90, 91, 185, 185, 88, 88, 88, 88, 88, 1, 86, 87, 86, 88, 88, 88, 89, 90, 91, 186, 186, 88, 88, 88, 88, 88, 1, 187, 87, 187, 88, 88, 88, 89, 90, 188, 88, 88, 88, 88, 88, 1, 189, 190, 189, 3, 61, 188, 1, 191, 1, 192, 192, 1, 192, 192, 3, 61, 188, 1, 188, 193, 188, 97, 98, 97, 97, 196, 97, 97, 97, 194, 195, 97, 195, 1, 197, 1, 198, 198, 1, 198, 102, 198, 97, 98, 97, 97, 196, 97, 97, 97, 194, 195, 97, 195, 1, 109, 87, 109, 97, 97, 97, 89, 199, 200, 90, 97, 97, 201, 202, 97, 202, 1, 109, 87, 109, 97, 97, 97, 89, 199, 90, 97, 97, 202, 202, 97, 202, 1, 109, 87, 109, 97, 97, 97, 89, 199, 203, 90, 97, 97, 202, 202, 97, 202, 1, 109, 87, 109, 97, 97, 97, 89, 90, 97, 97, 202, 204, 97, 204, 1, 205, 206, 205, 207, 208, 209, 210, 204, 204, 204, 1, 208, 204, 204, 204, 1, 205, 206, 205, 207, 210, 211, 204, 204, 1, 212, 213, 211, 211, 211, 1, 212, 211, 211, 211, 1, 211, 204, 204, 1, 109, 87, 109, 97, 97, 97, 89, 90, 97, 97, 214, 204, 97, 204, 1, 109, 87, 109, 97, 97, 97, 89, 199, 215, 90, 97, 97, 216, 202, 97, 202, 1, 109, 87, 109, 97, 97, 97, 89, 90, 97, 97, 217, 204, 97, 204, 1, 109, 87, 109, 97, 97, 97, 89, 199, 218, 90, 97, 97, 219, 202, 97, 202, 1, 109, 87, 109, 97, 97, 97, 89, 90, 97, 97, 220, 204, 97, 204, 1, 205, 206, 205, 207, 212, 213, 210, 221, 211, 211, 1, 205, 206, 205, 207, 212, 213, 210, 222, 211, 211, 1, 205, 206, 205, 207, 212, 213, 210, 211, 211, 211, 1, 109, 87, 109, 97, 97, 97, 89, 199, 218, 90, 97, 97, 223, 202, 97, 202, 1, 109, 87, 109, 97, 97, 97, 89, 199, 218, 90, 97, 97, 202, 202, 97, 202, 1, 109, 87, 109, 97, 97, 97, 89, 199, 215, 90, 97, 97, 224, 202, 97, 202, 1, 109, 87, 109, 97, 97, 97, 89, 199, 215, 90, 97, 97, 202, 202, 97, 202, 1, 109, 87, 109, 97, 97, 97, 89, 199, 200, 90, 97, 97, 225, 202, 97, 202, 1, 109, 87, 109, 97, 97, 97, 89, 199, 200, 90, 97, 97, 202, 202, 97, 202, 1, 227, 226, 226, 226, 1, 229, 230, 228, 228, 228, 1, 229, 230, 231, 231, 231, 1, 229, 230, 232, 232, 232, 1, 229, 230, 1, 234, 233, 226, 226, 1, 235, 229, 230, 236, 228, 228, 1, 237, 1, 238, 239, 1, 240, 1, 241, 242, 1, 243, 1, 230, 244, 1, 230, 245, 1, 230, 1, 205, 206, 205, 207, 210, 1, 241, 246, 1, 241, 1, 238, 247, 1, 238, 1, 235, 229, 230, 248, 231, 231, 1, 235, 229, 230, 232, 232, 232, 1, 250, 230, 249, 249, 249, 1, 252, 230, 251, 251, 251, 1, 252, 230, 253, 253, 253, 1, 252, 230, 254, 254, 254, 1, 252, 230, 1, 255, 249, 249, 1, 235, 252, 230, 256, 251, 251, 1, 235, 252, 230, 257, 253, 253, 1, 235, 252, 230, 254, 254, 254, 1, 258, 1, 235, 259, 1, 235, 260, 1, 235, 1, 234, 1, 86, 87, 86, 88, 88, 88, 89, 90, 91, 261, 262, 261, 262, 88, 88, 88, 88, 88, 1, 86, 87, 86, 88, 88, 88, 89, 90, 91, 263, 263, 88, 88, 88, 88, 88, 1, 86, 87, 86, 88, 88, 88, 89, 90, 91, 264, 264, 88, 88, 88, 88, 88, 1, 86, 87, 86, 88, 88, 88, 89, 90, 91, 265, 265, 88, 88, 88, 88, 88, 1, 86, 87, 86, 88, 88, 88, 89, 90, 91, 266, 266, 88, 88, 88, 88, 88, 1, 86, 87, 86, 88, 88, 88, 89, 90, 91, 267, 267, 88, 88, 88, 88, 88, 1, 86, 87, 86, 88, 88, 88, 89, 90, 91, 268, 268, 88, 88, 88, 88, 88, 1, 269, 87, 269, 88, 88, 88, 89, 90, 270, 88, 88, 88, 88, 88, 1, 271, 272, 271, 3, 61, 270, 1, 273, 1, 274, 274, 1, 274, 274, 3, 61, 270, 1, 270, 275, 270, 97, 98, 97, 97, 277, 99, 97, 97, 97, 276, 278, 97, 97, 278, 97, 1, 279, 1, 280, 280, 1, 280, 102, 280, 97, 98, 97, 97, 277, 99, 97, 97, 97, 276, 278, 97, 97, 278, 97, 1, 281, 282, 281, 283, 284, 286, 287, 285, 288, 288, 1, 289, 1, 290, 291, 1, 292, 1, 293, 294, 1, 295, 1, 281, 282, 281, 283, 287, 296, 1, 281, 282, 281, 283, 287, 297, 1, 281, 282, 281, 283, 287, 1, 293, 298, 1, 293, 1, 290, 299, 1, 290, 1, 281, 282, 281, 283, 284, 286, 287, 300, 301, 301, 1, 281, 282, 281, 283, 284, 286, 287, 302, 302, 302, 1, 281, 282, 281, 283, 286, 287, 1, 304, 303, 305, 305, 1, 281, 282, 281, 283, 307, 287, 306, 306, 306, 1, 281, 282, 281, 283, 309, 287, 308, 308, 308, 1, 281, 282, 281, 283, 309, 287, 310, 310, 310, 1, 281, 282, 281, 283, 309, 287, 311, 311, 311, 1, 281, 282, 281, 283, 309, 287, 1, 312, 306, 306, 1, 281, 282, 281, 283, 284, 309, 287, 313, 308, 308, 1, 281, 282, 281, 283, 284, 309, 287, 314, 310, 310, 1, 281, 282, 281, 283, 284, 309, 287, 311, 311, 311, 1, 315, 1, 284, 316, 1, 284, 317, 1, 284, 1, 281, 282, 281, 283, 286, 287, 288, 288, 288, 1, 281, 282, 281, 283, 286, 287, 301, 301, 301, 1, 281, 282, 281, 283, 286, 287, 302, 302, 302, 1, 304, 1, 86, 87, 86, 88, 88, 88, 89, 90, 91, 318, 318, 88, 88, 88, 88, 88, 1, 86, 87, 86, 88, 88, 88, 89, 90, 91, 319, 319, 88, 88, 88, 88, 88, 1, 86, 87, 86, 88, 88, 88, 89, 90, 91, 320, 320, 88, 88, 88, 88, 88, 1, 321, 322, 321, 323, 324, 325, 1, 326, 327, 326, 3, 61, 325, 1, 328, 1, 329, 329, 1, 329, 329, 3, 61, 325, 1, 325, 330, 325, 331, 1, 332, 1, 333, 333, 1, 333, 333, 331, 1, 334, 335, 334, 336, 338, 337, 1, 86, 87, 86, 88, 88, 88, 89, 90, 91, 339, 339, 88, 88, 88, 88, 88, 1, 86, 87, 86, 88, 88, 88, 89, 90, 91, 340, 340, 88, 88, 88, 88, 88, 1, 341, 87, 341, 88, 88, 88, 89, 90, 342, 88, 88, 88, 88, 88, 1, 343, 344, 343, 3, 61, 342, 1, 345, 1, 346, 346, 1, 346, 346, 3, 61, 342, 1, 342, 347, 342, 97, 98, 97, 97, 99, 97, 97, 97, 348, 97, 97, 1, 349, 1, 350, 350, 1, 350, 102, 350, 97, 98, 97, 97, 99, 97, 97, 97, 348, 97, 97, 1, 351, 352, 351, 353, 355, 354, 1, 351, 352, 351, 353, 355, 356, 1, 351, 352, 351, 353, 355, 1, 54, 50, 50, 50, 1, 51, 52, 51, 53, 56, 57, 48, 50, 50, 1, 357, 50, 50, 1, 45, 358, 359, 48, 48, 1, 360, 50, 50, 1, 45, 361, 362, 48, 48, 1, 363, 50, 50, 1, 51, 52, 51, 53, 45, 49, 56, 57, 364, 48, 48, 1, 51, 52, 51, 53, 45, 49, 56, 57, 365, 48, 48, 1, 51, 52, 51, 53, 45, 49, 56, 57, 48, 48, 48, 1, 45, 361, 366, 48, 48, 1, 45, 361, 48, 48, 48, 1, 45, 358, 367, 48, 48, 1, 45, 358, 48, 48, 48, 1, 45, 46, 368, 48, 48, 1, 45, 46, 48, 48, 48, 1, 370, 369, 369, 369, 1, 372, 373, 371, 371, 371, 1, 372, 373, 374, 374, 374, 1, 372, 373, 375, 375, 375, 1, 372, 373, 1, 377, 376, 369, 369, 1, 378, 372, 373, 379, 371, 371, 1, 380, 1, 381, 382, 1, 383, 1, 384, 385, 1, 386, 1, 373, 387, 1, 373, 388, 1, 373, 1, 51, 52, 51, 53, 56, 57, 1, 384, 389, 1, 384, 1, 381, 390, 1, 381, 1, 378, 372, 373, 391, 374, 374, 1, 378, 372, 373, 375, 375, 375, 1, 393, 373, 392, 392, 392, 1, 395, 373, 394, 394, 394, 1, 395, 373, 396, 396, 396, 1, 395, 373, 397, 397, 397, 1, 395, 373, 1, 398, 392, 392, 1, 378, 395, 373, 399, 394, 394, 1, 378, 395, 373, 400, 396, 396, 1, 378, 395, 373, 397, 397, 397, 1, 401, 1, 378, 402, 1, 378, 403, 1, 378, 1, 377, 1, 2, 2, 1, 1, 0]; _tsip_machine_parser_header_Via_trans_targs = [2, 0, 3, 4, 337, 5, 8, 6, 7, 9, 10, 8, 13, 9, 10, 13, 11, 12, 14, 17, 15, 16, 18, 19, 17, 22, 18, 19, 22, 20, 21, 23, 26, 24, 25, 27, 28, 26, 27, 28, 31, 35, 301, 29, 30, 32, 287, 299, 33, 34, 35, 36, 69, 4, 285, 286, 40, 49, 36, 37, 40, 49, 38, 39, 41, 44, 42, 43, 45, 69, 4, 44, 49, 45, 46, 47, 48, 50, 53, 107, 122, 135, 208, 271, 51, 52, 54, 69, 53, 4, 49, 58, 54, 55, 56, 57, 59, 71, 65, 72, 60, 61, 62, 63, 64, 66, 68, 70, 67, 45, 338, 73, 106, 74, 77, 75, 76, 78, 93, 79, 91, 80, 81, 89, 82, 83, 87, 84, 85, 86, 88, 90, 92, 94, 102, 95, 98, 96, 97, 99, 100, 101, 103, 104, 105, 108, 109, 110, 111, 112, 113, 117, 113, 114, 115, 116, 118, 121, 119, 120, 45, 69, 121, 4, 49, 123, 124, 125, 126, 130, 126, 127, 128, 129, 131, 134, 132, 133, 45, 69, 134, 4, 49, 136, 137, 138, 139, 140, 144, 140, 141, 142, 143, 145, 148, 152, 172, 146, 147, 149, 158, 170, 150, 151, 152, 45, 69, 4, 153, 154, 49, 155, 156, 157, 159, 160, 168, 161, 162, 166, 163, 164, 165, 167, 169, 171, 173, 207, 174, 177, 187, 175, 176, 178, 194, 179, 192, 180, 181, 190, 182, 183, 188, 184, 185, 186, 189, 191, 193, 195, 203, 196, 199, 197, 198, 200, 201, 202, 204, 205, 206, 209, 258, 210, 211, 212, 213, 214, 215, 216, 220, 216, 217, 218, 219, 221, 224, 257, 254, 222, 223, 45, 69, 4, 225, 237, 240, 49, 255, 226, 227, 235, 228, 229, 233, 230, 231, 232, 234, 236, 238, 256, 239, 224, 241, 254, 242, 250, 243, 246, 244, 245, 247, 248, 249, 251, 252, 253, 259, 260, 261, 262, 69, 4, 49, 266, 262, 263, 264, 265, 267, 270, 268, 269, 45, 69, 4, 270, 49, 272, 273, 274, 278, 274, 275, 276, 277, 279, 282, 280, 281, 45, 69, 4, 283, 49, 284, 288, 289, 297, 290, 291, 295, 292, 293, 294, 296, 298, 300, 302, 336, 303, 306, 316, 304, 305, 307, 323, 308, 321, 309, 310, 319, 311, 312, 317, 313, 314, 315, 318, 320, 322, 324, 332, 325, 328, 326, 327, 329, 330, 331, 333, 334, 335]; _tsip_machine_parser_header_Via_trans_actions = [0, 0, 0, 0, 0, 0, 29, 0, 0, 3, 3, 0, 3, 0, 0, 0, 0, 0, 0, 1, 0, 0, 5, 5, 0, 5, 0, 0, 0, 0, 0, 0, 1, 0, 0, 11, 11, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 32, 0, 0, 7, 7, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 35, 35, 35, 0, 9, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 59, 59, 0, 59, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59, 0, 0, 0, 0, 0, 0, 1, 0, 0, 47, 47, 0, 47, 19, 0, 0, 0, 59, 0, 0, 0, 0, 0, 0, 1, 0, 0, 50, 50, 0, 50, 21, 0, 0, 0, 0, 59, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 41, 41, 41, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 44, 44, 44, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 56, 56, 23, 0, 0, 0, 0, 0, 0, 1, 0, 0, 62, 62, 62, 0, 53, 0, 0, 59, 0, 0, 0, 0, 0, 0, 1, 0, 0, 38, 38, 38, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]; tsip_machine_parser_header_Via_start = 1; tsip_machine_parser_header_Via_first_final = 338; tsip_machine_parser_header_Via_error = 0; tsip_machine_parser_header_Via_en_main = 1; function tsip_header_Via(b, d, e, a, c) { tsip_header.call(this, tsip_header_type_e.Via); this.s_branch = null; this.s_host = a; this.i_port = c; this.s_comp = null; this.s_sigcomp_id = null; this.s_received = null; this.s_maddr = null; this.s_proto_name = b; this.s_proto_version = d; this.s_transport = e; this.i_rport = -1; this.i_ttl = -1; this.is_transport_reliable = function() { return tsk_string_iequals(this.s_transport, "UDP") }; this.is_transport_unreliable = function() { return !this.is_transport_reliable() } } tsip_header_Via.prototype.toString = function() { var a = (this.s_host && tsk_string_contains(this.s_host, this.s_host.length, ":")); return tsk_string_format("{0}/{1}/{2} {3}{4}{5}{6}{7}{8}{9}{10}{11}{12}{13}{14}{15}{16}{17}{18}{19}{20}{21}", this.s_proto_name ? this.s_proto_name : "SIP", this.s_proto_version ? this.s_proto_version : "2.0", this.s_transport ? this.s_transport : "UDP", a ? "[" : "", this.s_host ? this.s_host : "127.0.0.1", a ? "]" : "", this.i_port > 0 ? ":" : "", this.i_port > 0 ? this.i_port : "", this.s_maddr ? ";maddr=" : "", this.s_maddr ? this.s_maddr : "", this.s_sigcomp_id ? ";sigcomp-id=" : "", this.s_sigcomp_id ? this.s_sigcomp_id : "", this.s_comp ? ";comp=" : "", this.s_comp ? this.s_comp : "", this.i_rport >= 0 ? (this.i_rport > 0 ? ";rport=" : ";rport") : "", this.i_rport > 0 ? this.i_rport : "", this.i_ttl >= 0 ? (this.i_ttl > 0 ? ";ttl=" : ";ttl") : "", this.i_ttl > 0 ? this.i_ttl : "", this.s_received ? ";received=" : "", this.s_received ? this.s_received : "", this.s_branch ? ";branch=" : "", this.s_branch ? this.s_branch : "") }; tsip_header_Via.prototype.Parse = function(n) { var e = 0; var l = 0; var w = n.length; var j = w; var x = tsk_buff_str2ib(n); var v; var g = new Array(); var f = null; e = tsip_machine_parser_header_Via_start; var h, o, b, d, c, s, m; var q, k, a, r, u; var t; h = o = b = s = m = null; q = 0; k = 10; a = 15; r = 20; u = 30; t = 40; while (true) { _trigger_goto = false; if (q <= 0) { if (l == w) { q = u; continue } if (e == 0) { q = t; continue } } if (q <= k) { b = _tsip_machine_parser_header_Via_key_offsets[e]; o = _tsip_machine_parser_header_Via_index_offsets[e]; h = _tsip_machine_parser_header_Via_single_lengths[e]; _break_match = false; do { if (h > 0) { _lower = b; _upper = b + h - 1; while (true) { if (_upper < _lower) { break } _mid = _lower + ((_upper - _lower) >> 1); if (x[l] < _tsip_machine_parser_header_Via_trans_keys[_mid]) { _upper = _mid - 1 } else { if (x[l] > _tsip_machine_parser_header_Via_trans_keys[_mid]) { _lower = _mid + 1 } else { o += (_mid - b); _break_match = true; break } } } if (_break_match) { break } b += h; o += h } h = _tsip_machine_parser_header_Via_range_lengths[e]; if (h > 0) { _lower = b; _upper = b + (h << 1) - 2; while (true) { if (_upper < _lower) { break } _mid = _lower + (((_upper - _lower) >> 1) & ~1); if (x[l] < _tsip_machine_parser_header_Via_trans_keys[_mid]) { _upper = _mid - 2 } else { if (x[l] > _tsip_machine_parser_header_Via_trans_keys[_mid + 1]) { _lower = _mid + 2 } else { o += ((_mid - b) >> 1); _break_match = true; break } } } if (_break_match) { break } o += h } } while (false); o = _tsip_machine_parser_header_Via_indicies[o]; e = _tsip_machine_parser_header_Via_trans_targs[o]; if (_tsip_machine_parser_header_Via_trans_actions[o] != 0) { s = _tsip_machine_parser_header_Via_trans_actions[o]; m = _tsip_machine_parser_header_Via_actions[s]; s += 1; while (m > 0) { m -= 1; s += 1; switch (_tsip_machine_parser_header_Via_actions[s - 1]) { case 0: v = l; break; case 1: if (!f) { f = new tsip_header_Via(null, null, null, null, 0) } break; case 2: f.s_proto_name = tsk_ragel_parser_get_string(n, l, v); break; case 3: f.s_proto_version = tsk_ragel_parser_get_string(n, l, v); break; case 4: f.s_host = tsk_ragel_parser_get_string(n, l, v); f.s_host = tsk_string_unquote(f.s_host, "[", "]"); break; case 5: f.i_port = tsk_ragel_parser_get_int(n, l, v); break; case 6: f.s_transport = tsk_ragel_parser_get_string(n, l, v); break; case 7: f.i_ttl = tsk_ragel_parser_get_int(n, l, v); break; case 8: f.s_maddr = tsk_ragel_parser_get_string(n, l, v); break; case 9: f.s_received = tsk_ragel_parser_get_string(n, l, v); break; case 10: f.s_branch = tsk_ragel_parser_get_string(n, l, v); break; case 11: f.s_comp = tsk_ragel_parser_get_string(n, l, v); break; case 12: f.i_rport = tsk_ragel_parser_get_int(n, l, v); break; case 13: if (f.i_rport < 0) { f.i_rport = 0 } break; case 14: if (f) { tsk_ragel_add_param(n, l, v, f.ao_params) } break; case 15: if (f) { g.push(f); f = null } break; case 16: break } } } if (_trigger_goto) { continue } } if (q <= r) { if (e == 0) { q = t; continue } l += 1; if (l != w) { q = k; continue } } if (q <= u) {} if (q <= t) { break } } if (e < 338) { tsk_utils_log_error("Failed to parse 'Via' header: " + n); return null } return g }; tsip_header_WWW_Authenticate.prototype = Object.create(tsip_header.prototype); _tsip_machine_parser_header_WWW_Authenticate_actions = [0, 1, 0, 1, 1, 1, 2, 1, 3, 1, 4, 1, 5, 1, 6, 1, 7, 1, 8, 1, 9, 1, 10, 1, 11, 1, 12, 1, 13, 2, 0, 6, 2, 0, 7, 2, 0, 8, 2, 0, 11, 2, 0, 12, 2, 5, 0, 2, 6, 0, 2, 7, 0, 2, 8, 0, 2, 12, 0]; _tsip_machine_parser_header_WWW_Authenticate_key_offsets = [0, 0, 4, 6, 8, 10, 12, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, 33, 35, 37, 40, 49, 52, 56, 65, 69, 78, 83, 88, 93, 98, 103, 140, 144, 181, 205, 212, 216, 223, 260, 264, 301, 327, 331, 357, 382, 386, 411, 415, 421, 432, 436, 442, 448, 452, 458, 462, 488, 514, 540, 566, 590, 597, 601, 608, 633, 637, 662, 666, 672, 683, 687, 693, 699, 722, 738, 755, 772, 789, 794, 810, 828, 835, 843, 850, 858, 865, 873, 881, 885, 893, 897, 905, 909, 927, 945, 962, 979, 996, 1013, 1018, 1033, 1051, 1069, 1087, 1094, 1102, 1110, 1114, 1118, 1122, 1148, 1174, 1200, 1226, 1252, 1276, 1283, 1287, 1294, 1319, 1323, 1348, 1352, 1358, 1369, 1373, 1379, 1385, 1389, 1415, 1441, 1465, 1472, 1476, 1483, 1508, 1512, 1537, 1541, 1547, 1558, 1562, 1567, 1573, 1577, 1583, 1609, 1635, 1661, 1687, 1711, 1718, 1722, 1729, 1754, 1758, 1783, 1787, 1793, 1804, 1808, 1814, 1820, 1824, 1850, 1876, 1902, 1928, 1952, 1959, 1963, 1970, 1999, 2003, 2032, 2057, 2082, 2107, 2132, 2138, 2163, 2188, 2192, 2203, 2208, 2215, 2228, 2232, 2245, 2249, 2262, 2306, 2310, 2354, 2385, 2399, 2403, 2417, 2448, 2452, 2483, 2487, 2499, 2512, 2525, 2529, 2535, 2565, 2589, 2614, 2639, 2664, 2677, 2701, 2727, 2742, 2758, 2773, 2789, 2804, 2820, 2836, 2848, 2864, 2876, 2892, 2904, 2930, 2956, 2981, 3006, 3031, 3056, 3069, 3092, 3118, 3144, 3170, 3185, 3201, 3217, 3229, 3241, 3245, 3278, 3311, 3344, 3377, 3410, 3443, 3476, 3509, 3540, 3554, 3558, 3572, 3603, 3607, 3638, 3668, 3672, 3705, 3738, 3771, 3804, 3837, 3868, 3882, 3886, 3900, 3931, 3935, 3966, 3970, 3982, 3995, 3999, 4004, 4017, 4022, 4035, 4040, 4051, 4058, 4102, 4107, 4151, 4182, 4196, 4201, 4215, 4246, 4251, 4282, 4287, 4299, 4329, 4334, 4359, 4367, 4372, 4380, 4418, 4423, 4461, 4488, 4493, 4520, 4545, 4550, 4575, 4580, 4586, 4610, 4617, 4622, 4629, 4634, 4661, 4688, 4715, 4742, 4767, 4775, 4780, 4788, 4813, 4818, 4843, 4848, 4854, 4867, 4871, 4884, 4888, 4901, 4945, 4949, 4993, 5024, 5038, 5042, 5056, 5087, 5091, 5122, 5126, 5138, 5151, 5181, 5194, 5198, 5222, 5247, 5272, 5297, 5310, 5334, 5360, 5375, 5391, 5406, 5422, 5437, 5453, 5469, 5481, 5494, 5510, 5522, 5538, 5550, 5576, 5602, 5627, 5652, 5677, 5702, 5715, 5738, 5764, 5790, 5816, 5831, 5847, 5863, 5875, 5887, 5891, 5924, 5957, 5990, 6023, 6056, 6089, 6122, 6155, 6186, 6200, 6204, 6218, 6249, 6253, 6284, 6314, 6318, 6351, 6384, 6417, 6450, 6483, 6514, 6528, 6532, 6546, 6577, 6581, 6612, 6616, 6628, 6641, 6645, 6678, 6711, 6744, 6777, 6808, 6822, 6826, 6840, 6871, 6875, 6906, 6910, 6922, 6935, 6939, 6972, 7005, 7038, 7071, 7104, 7135, 7149, 7153, 7167, 7198, 7202, 7233, 7237, 7249, 7262, 7275, 7279, 7292, 7336, 7340, 7384, 7415, 7429, 7433, 7447, 7478, 7482, 7513, 7517, 7529, 7542, 7572, 7576, 7600, 7625, 7650, 7675, 7688, 7712, 7738, 7753, 7769, 7784, 7800, 7815, 7831, 7847, 7859, 7872, 7888, 7900, 7916, 7928, 7954, 7980, 8005, 8030, 8055, 8080, 8093, 8116, 8142, 8168, 8194, 8209, 8225, 8241, 8253, 8265, 8269, 8302, 8335, 8368, 8401, 8434, 8467, 8500, 8533, 8564, 8578, 8582, 8596, 8627, 8631, 8662, 8692, 8696, 8729, 8762, 8795, 8828, 8861, 8892, 8906, 8910, 8924, 8955, 8959, 8990, 8994, 9006, 9019, 9023, 9056, 9089, 9122, 9155, 9186, 9200, 9204, 9218, 9249, 9253, 9284, 9288, 9300, 9313, 9317, 9350, 9383, 9416, 9449, 9482, 9513, 9527, 9531, 9545, 9576, 9580, 9611, 9615, 9627, 9640, 9644, 9677, 9710, 9741, 9755, 9759, 9773, 9804, 9808, 9839, 9843, 9855, 9868, 9881, 9886, 9899, 9943, 9948, 9992, 10023, 10037, 10042, 10056, 10087, 10092, 10123, 10128, 10140, 10170, 10175, 10200, 10208, 10213, 10221, 10259, 10264, 10302, 10329, 10334, 10361, 10386, 10391, 10416, 10421, 10427, 10451, 10458, 10463, 10470, 10475, 10502, 10529, 10556, 10583, 10608, 10616, 10621, 10629, 10654, 10659, 10684, 10689, 10695, 10712, 10730, 10748, 10766, 10772, 10789, 10808, 10816, 10825, 10833, 10842, 10850, 10859, 10868, 10873, 10880, 10889, 10894, 10903, 10908, 10927, 10946, 10964, 10982, 11000, 11018, 11024, 11040, 11059, 11078, 11097, 11105, 11114, 11123, 11128, 11133, 11138, 11165, 11192, 11219, 11246, 11273, 11298, 11306, 11311, 11319, 11344, 11349, 11374, 11379, 11385, 11398, 11402, 11415, 11420, 11447, 11474, 11499, 11507, 11512, 11520, 11545, 11550, 11575, 11580, 11607, 11634, 11661, 11688, 11713, 11721, 11726, 11734, 11759, 11764, 11789, 11794, 11800, 11813, 11817, 11830, 11834, 11847, 11891, 11895, 11939, 11970, 11984, 11988, 12002, 12033, 12037, 12068, 12072, 12084, 12097, 12127, 12140, 12144, 12168, 12193, 12218, 12243, 12256, 12280, 12306, 12321, 12337, 12352, 12368, 12383, 12399, 12415, 12427, 12440, 12456, 12468, 12484, 12496, 12522, 12548, 12573, 12598, 12623, 12648, 12661, 12684, 12710, 12736, 12762, 12777, 12793, 12809, 12821, 12833, 12837, 12870, 12903, 12936, 12969, 13002, 13035, 13068, 13101, 13132, 13146, 13150, 13164, 13195, 13199, 13230, 13260, 13264, 13297, 13330, 13363, 13396, 13429, 13460, 13474, 13478, 13492, 13523, 13527, 13558, 13562, 13574, 13587, 13591, 13624, 13657, 13690, 13723, 13754, 13768, 13772, 13786, 13817, 13821, 13852, 13856, 13868, 13881, 13885, 13918, 13951, 13984, 14017, 14050, 14081, 14095, 14099, 14113, 14144, 14148, 14179, 14183, 14195, 14208, 14212, 14245, 14278, 14309, 14323, 14327, 14341, 14372, 14376, 14407, 14411, 14423, 14436, 14440, 14473, 14506, 14539, 14572, 14603, 14617, 14621, 14635, 14666, 14670, 14701, 14705, 14717, 14730, 14734, 14767, 14800, 14833, 14866, 14897, 14911, 14915, 14929, 14964, 14968, 15003, 15035, 15067, 15099, 15131, 15144, 15176, 15208, 15212, 15217, 15244, 15271, 15298, 15325, 15350, 15358, 15363, 15371, 15400, 15405, 15434, 15460, 15486, 15512, 15538, 15545, 15571, 15597, 15602, 15629, 15656, 15683, 15710, 15735, 15743, 15748, 15756, 15781, 15786, 15811, 15816, 15822, 15835, 15848, 15853, 15866, 15893, 15920, 15947, 15974, 16001, 16026, 16034, 16039, 16047, 16072, 16077, 16102, 16107, 16113, 16130, 16148, 16166, 16184, 16190, 16207, 16226, 16234, 16243, 16251, 16260, 16268, 16277, 16286, 16291, 16298, 16307, 16312, 16321, 16326, 16345, 16364, 16382, 16400, 16418, 16436, 16442, 16458, 16477, 16496, 16515, 16523, 16532, 16541, 16546, 16551, 16556, 16583, 16610, 16635, 16643, 16648, 16656, 16681, 16686, 16711, 16716, 16722, 16735, 16748, 16753, 16766, 16771, 16798, 16825, 16852, 16879, 16904, 16912, 16917, 16925, 16950, 16955, 16980, 16985, 16991, 16996, 17023, 17050, 17077, 17104, 17129, 17137, 17142, 17150, 17179, 17184, 17213, 17239, 17265, 17291, 17317, 17324, 17350, 17376, 17381, 17386, 17413, 17440, 17467, 17494, 17521, 17548, 17575, 17600, 17608, 17613, 17621, 17646, 17651, 17676, 17700, 17705, 17729, 17754, 17779, 17804, 17817, 17841, 17867, 17882, 17898, 17913, 17929, 17944, 17960, 17976, 17988, 18001, 18017, 18029, 18045, 18057, 18083, 18109, 18134, 18159, 18184, 18209, 18222, 18245, 18271, 18297, 18323, 18338, 18354, 18370, 18382, 18394, 18399, 18432, 18465, 18498, 18531, 18564, 18597, 18630, 18663, 18694, 18708, 18713, 18727, 18758, 18763, 18794, 18824, 18829, 18862, 18895, 18928, 18961, 18994, 19025, 19039, 19044, 19058, 19089, 19094, 19125, 19130, 19142, 19147, 19180, 19213, 19246, 19279, 19310, 19324, 19329, 19343, 19374, 19379, 19410, 19415, 19427, 19432, 19465, 19498, 19531, 19564, 19597, 19628, 19642, 19647, 19661, 19692, 19697, 19728, 19733, 19745, 19750, 19783, 19816, 19847, 19861, 19866, 19880, 19911, 19916, 19947, 19952, 19985, 20018, 20051, 20084, 20115, 20129, 20134, 20148, 20179, 20184, 20215, 20220, 20232, 20237, 20270, 20303, 20336, 20369, 20400, 20414, 20419, 20433, 20468, 20473, 20508, 20540, 20572, 20604, 20636, 20649, 20681, 20713, 20718, 20722, 20755, 20788, 20821, 20854, 20885, 20899, 20903, 20917, 20948, 20952, 20983, 20987, 20999, 21012, 21016, 21049, 21082, 21115, 21148, 21179, 21193, 21197, 21211, 21246, 21250, 21285, 21317, 21349, 21381, 21413, 21426, 21458, 21490, 21494, 21498, 21531, 21564, 21595, 21609, 21613, 21627, 21658, 21662, 21693, 21697, 21709, 21722, 21726, 21759, 21792, 21825, 21858, 21889, 21903, 21907, 21921, 21952, 21956, 21987, 21991, 22003, 22016, 22020, 22053, 22086, 22119, 22152, 22183, 22197, 22201, 22215, 22250, 22254, 22289, 22321, 22353, 22385, 22417, 22430, 22462, 22494, 22498, 22503, 22530, 22557, 22584, 22611, 22636, 22644, 22649, 22657, 22682, 22687, 22712, 22717, 22744, 22771, 22798, 22825, 22852, 22879, 22906, 22931, 22939, 22944, 22952, 22977, 22982, 23007, 23031, 23036, 23060, 23085, 23110, 23135, 23148, 23172, 23198, 23213, 23229, 23244, 23260, 23275, 23291, 23307, 23319, 23332, 23348, 23360, 23376, 23388, 23414, 23440, 23465, 23490, 23515, 23540, 23553, 23576, 23602, 23628, 23654, 23669, 23685, 23701, 23713, 23725, 23730, 23763, 23796, 23829, 23862, 23895, 23928, 23961, 23994, 24025, 24039, 24044, 24058, 24089, 24094, 24125, 24155, 24160, 24193, 24226, 24259, 24292, 24325, 24356, 24370, 24375, 24389, 24420, 24425, 24456, 24461, 24494, 24527, 24560, 24593, 24624, 24638, 24643, 24657, 24688, 24693, 24724, 24729, 24741, 24746, 24779, 24812, 24845, 24878, 24911, 24942, 24956, 24961, 24975, 25006, 25011, 25042, 25047, 25059, 25064, 25097, 25130, 25161, 25175, 25180, 25194, 25225, 25230, 25261, 25266, 25278, 25283, 25316, 25349, 25382, 25415, 25446, 25460, 25465, 25479, 25510, 25515, 25546, 25551, 25563, 25568, 25601, 25634, 25667, 25700, 25731, 25745, 25750, 25764, 25799, 25804, 25839, 25871, 25903, 25935, 25967, 25980, 26012, 26044, 26049, 26053, 26086, 26119, 26152, 26185, 26216, 26230, 26234, 26248, 26279, 26283, 26314, 26318, 26330, 26334, 26367, 26400, 26433, 26466, 26499, 26530, 26544, 26548, 26562, 26593, 26597, 26628, 26632, 26644, 26648, 26681, 26714, 26745, 26759, 26763, 26777, 26808, 26812, 26843, 26847, 26859, 26872, 26876, 26909, 26942, 26975, 27008, 27039, 27053, 27057, 27071, 27102, 27106, 27137, 27141, 27153, 27157, 27190, 27223, 27256, 27289, 27320, 27334, 27338, 27352, 27387, 27391, 27426, 27458, 27490, 27522, 27554, 27567, 27599, 27631, 27635, 27639, 27665, 27691, 27717, 27743, 27767, 27774, 27778, 27785, 27810, 27814, 27839, 27843, 27849, 27860, 27864, 27890, 27916, 27942, 27968, 27994, 28020, 28046, 28070, 28077, 28081, 28088, 28113, 28117, 28142, 28165, 28169, 28195, 28221, 28247, 28273, 28299, 28323, 28330, 28334, 28341, 28366, 28370, 28395, 28399, 28405, 28416, 28427, 28432, 28439, 28452, 28456, 28469, 28473, 28486, 28530, 28534, 28578, 28609, 28623, 28627, 28641, 28672, 28676, 28707, 28737, 28750, 28754, 28778, 28803, 28828, 28853, 28866, 28890, 28916, 28931, 28947, 28962, 28978, 28993, 29009, 29025, 29037, 29050, 29066, 29078, 29094, 29106, 29132, 29158, 29183, 29208, 29233, 29258, 29271, 29294, 29320, 29346, 29372, 29387, 29403, 29419, 29431, 29443, 29447, 29480, 29513, 29546, 29579, 29612, 29645, 29678, 29711, 29742, 29756, 29760, 29774, 29805, 29809, 29840, 29870, 29874, 29907, 29940, 29973, 30006, 30039, 30070, 30084, 30088, 30102, 30133, 30137, 30168, 30172, 30184, 30197, 30201, 30234, 30267, 30300, 30333, 30364, 30378, 30382, 30396, 30427, 30431, 30462, 30466, 30499, 30532, 30565, 30598, 30631, 30662, 30676, 30680, 30694, 30725, 30729, 30760, 30764, 30797, 30830, 30861, 30875, 30879, 30893, 30924, 30928, 30959, 30963, 30975, 30988, 30992, 31025, 31058, 31091, 31124, 31155, 31169, 31173, 31187, 31218, 31222, 31253, 31257, 31290, 31323, 31356, 31389, 31420, 31434, 31438, 31452, 31487, 31491, 31526, 31558, 31590, 31622, 31654, 31667, 31699, 31731, 31735, 31739, 31765, 31791, 31815, 31822, 31826, 31833, 31858, 31862, 31887, 31891, 31897, 31908, 31919, 31924, 31931, 31935, 31940, 31945, 31950, 31955, 31960, 31965, 31969, 31974, 31976, 31978, 31981, 31986, 31991, 31996, 32001, 32038, 32043, 32048, 32053, 32058, 32095, 32100, 32105, 32110, 32115, 32152, 32157, 32162, 32167, 32172, 32209, 32214, 32219, 32224, 32228, 32265, 32270, 32275, 32280, 32285, 32322, 32327, 32332, 32369, 32375, 32412, 32449, 32454, 32459, 32464, 32469, 32474, 32511, 32516, 32521, 32558, 32563, 32568, 32573, 32577, 32583, 32589, 32595, 32601, 32607, 32613, 32651, 32657, 32663, 32701, 32707, 32713, 32719, 32757, 32763, 32769, 32775, 32812, 32849, 32854, 32859, 32864, 32869, 32874, 32911, 32916, 32921, 32958, 32963, 32968, 32973, 33010, 33015, 33020, 33025, 33062, 33067, 33072, 33077, 33082, 33087, 33092, 33097, 33102, 33139, 33176, 33181, 33186, 33223, 33228, 33233, 33238, 33275, 33280, 33285, 33290, 33327, 33332, 33337, 33342, 33379, 33384, 33389, 33394, 33400, 33406, 33412, 33418, 33424, 33462, 33468, 33474, 33512, 33518, 33524, 33530, 33568, 33574, 33580, 33586, 33624, 33630, 33636, 33642, 33679, 33717, 33723, 33729, 33767, 33773, 33779, 33785, 33822, 33859, 33864, 33869, 33874, 33879, 33884, 33921, 33926, 33931, 33968, 33973, 33978, 33983, 34020, 34025, 34030, 34035, 34072, 34077, 34082, 34087, 34124, 34129, 34134, 34139, 34176, 34181, 34186, 34191, 34228, 34233, 34238, 34275, 34313, 34319, 34325, 34363, 34369, 34375, 34381, 34419, 34425, 34431, 34437, 34475, 34481, 34487, 34493, 34531, 34569, 34575, 34581, 34587, 34625, 34631, 34637, 34675, 34713, 34719, 34725, 34763, 34801, 34807, 34813, 34851, 34857, 34863, 34869, 34907, 34913, 34919, 34925, 34963, 34969, 34975, 34981, 35019, 35025, 35031, 35069, 35075, 35081, 35087, 35125, 35131, 35137, 35175, 35212, 35217, 35222, 35227, 35264, 35269, 35274, 35311, 35348, 35353, 35358, 35363, 35400, 35405, 35410, 35415, 35452, 35457, 35462, 35499, 35537, 35543, 35549, 35587, 35593, 35599, 35637, 35675, 35681, 35687, 35725, 35731, 35737, 35775, 35781, 35787, 35793, 35831, 35837, 35843, 35849, 35887, 35893, 35899, 35905, 35943, 35949, 35955, 35961, 35999, 36005, 36011, 36049, 36086, 36091, 36096, 36101, 36138, 36143, 36148, 36153, 36190, 36195, 36200, 36205, 36242, 36247, 36252, 36257, 36294, 36299, 36304, 36341, 36378, 36383, 36388, 36393, 36430, 36435, 36440, 36477, 36482, 36487, 36492, 36498, 36535, 36572, 36577, 36582, 36587, 36592, 36629, 36634, 36639, 36676, 36681, 36686, 36691, 36728, 36733, 36738, 36775, 36780, 36785, 36822, 36827, 36832, 36837, 36874, 36879, 36884, 36921, 36926, 36931, 36968, 37005, 37010, 37015, 37020, 37026]; _tsip_machine_parser_header_WWW_Authenticate_trans_keys = [80, 87, 112, 119, 82, 114, 79, 111, 88, 120, 89, 121, 45, 65, 97, 85, 117, 84, 116, 72, 104, 69, 101, 78, 110, 84, 116, 73, 105, 67, 99, 65, 97, 84, 116, 69, 101, 9, 32, 58, 9, 13, 32, 66, 68, 98, 100, 0, 65535, 13, 0, 65535, 10, 13, 0, 65535, 9, 13, 32, 66, 68, 98, 100, 0, 65535, 10, 13, 0, 65535, 9, 13, 32, 66, 68, 98, 100, 0, 65535, 13, 65, 97, 0, 65535, 13, 83, 115, 0, 65535, 13, 73, 105, 0, 65535, 13, 67, 99, 0, 65535, 9, 13, 32, 0, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 65, 68, 78, 79, 81, 82, 83, 97, 100, 110, 111, 113, 114, 115, 126, 0, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 65535, 10, 13, 0, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 65, 68, 78, 79, 81, 82, 83, 97, 100, 110, 111, 113, 114, 115, 126, 0, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 61, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 44, 61, 0, 65535, 10, 13, 0, 65535, 9, 13, 32, 44, 61, 0, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 65, 68, 78, 79, 81, 82, 83, 97, 100, 110, 111, 113, 114, 115, 126, 0, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 65535, 10, 13, 0, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 65, 68, 78, 79, 81, 82, 83, 97, 100, 110, 111, 113, 114, 115, 126, 0, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 61, 76, 108, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 10, 13, 0, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 61, 79, 111, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 126, 0, 41, 42, 57, 58, 64, 65, 90, 92, 94, 95, 122, 123, 65535, 10, 13, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 126, 0, 41, 42, 57, 58, 64, 65, 90, 92, 94, 95, 122, 123, 65535, 10, 13, 0, 65535, 9, 13, 32, 34, 0, 65535, 9, 13, 34, 92, 127, 0, 31, 32, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 44, 0, 65535, 9, 13, 32, 44, 0, 65535, 10, 13, 0, 65535, 9, 13, 32, 44, 0, 65535, 10, 13, 0, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 61, 79, 111, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 61, 78, 110, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 61, 67, 99, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 61, 69, 101, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 61, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 44, 61, 0, 65535, 10, 13, 0, 65535, 9, 13, 32, 44, 61, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 126, 0, 41, 42, 57, 58, 64, 65, 90, 92, 94, 95, 122, 123, 65535, 10, 13, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 126, 0, 41, 42, 57, 58, 64, 65, 90, 92, 94, 95, 122, 123, 65535, 10, 13, 0, 65535, 9, 13, 32, 34, 0, 65535, 9, 13, 34, 92, 127, 0, 31, 32, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 44, 0, 65535, 10, 13, 0, 127, 128, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 13, 58, 0, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 65535, 13, 58, 93, 0, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 65535, 13, 58, 93, 0, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 65535, 13, 58, 93, 0, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 65535, 13, 58, 93, 0, 65535, 13, 58, 0, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 65535, 13, 46, 58, 93, 0, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 65535, 13, 0, 47, 48, 57, 58, 65535, 13, 46, 0, 47, 48, 57, 58, 65535, 13, 0, 47, 48, 57, 58, 65535, 13, 46, 0, 47, 48, 57, 58, 65535, 13, 0, 47, 48, 57, 58, 65535, 13, 93, 0, 47, 48, 57, 58, 65535, 13, 93, 0, 47, 48, 57, 58, 65535, 13, 93, 0, 65535, 13, 46, 0, 47, 48, 57, 58, 65535, 13, 46, 0, 65535, 13, 46, 0, 47, 48, 57, 58, 65535, 13, 46, 0, 65535, 13, 46, 58, 93, 0, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 65535, 13, 46, 58, 93, 0, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 65535, 13, 58, 93, 0, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 65535, 13, 58, 93, 0, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 65535, 13, 58, 93, 0, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 65535, 13, 58, 93, 0, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 65535, 13, 58, 93, 0, 65535, 13, 0, 47, 48, 57, 58, 64, 65, 70, 71, 96, 97, 102, 103, 65535, 13, 46, 58, 93, 0, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 65535, 13, 46, 58, 93, 0, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 65535, 13, 46, 58, 93, 0, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 65535, 13, 0, 47, 48, 57, 58, 65535, 13, 46, 0, 47, 48, 57, 58, 65535, 13, 46, 0, 47, 48, 57, 58, 65535, 13, 46, 0, 65535, 13, 58, 0, 65535, 10, 13, 0, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 61, 80, 112, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 61, 65, 97, 126, 0, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 61, 81, 113, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 61, 85, 117, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 61, 69, 101, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 61, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 44, 61, 0, 65535, 10, 13, 0, 65535, 9, 13, 32, 44, 61, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 126, 0, 41, 42, 57, 58, 64, 65, 90, 92, 94, 95, 122, 123, 65535, 10, 13, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 126, 0, 41, 42, 57, 58, 64, 65, 90, 92, 94, 95, 122, 123, 65535, 10, 13, 0, 65535, 9, 13, 32, 34, 0, 65535, 9, 13, 34, 92, 127, 0, 31, 32, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 44, 0, 65535, 10, 13, 0, 127, 128, 65535, 10, 13, 0, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 61, 79, 111, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 61, 80, 112, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 61, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 44, 61, 0, 65535, 10, 13, 0, 65535, 9, 13, 32, 44, 61, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 126, 0, 41, 42, 57, 58, 64, 65, 90, 92, 94, 95, 122, 123, 65535, 10, 13, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 126, 0, 41, 42, 57, 58, 64, 65, 90, 92, 94, 95, 122, 123, 65535, 10, 13, 0, 65535, 9, 13, 32, 34, 0, 65535, 9, 13, 34, 92, 127, 0, 31, 32, 255, 256, 65535, 13, 34, 0, 65535, 10, 13, 34, 0, 65535, 9, 13, 32, 44, 0, 65535, 10, 13, 0, 65535, 9, 13, 32, 44, 0, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 61, 69, 101, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 61, 65, 97, 126, 0, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 61, 76, 108, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 61, 77, 109, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 61, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 44, 61, 0, 65535, 10, 13, 0, 65535, 9, 13, 32, 44, 61, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 126, 0, 41, 42, 57, 58, 64, 65, 90, 92, 94, 95, 122, 123, 65535, 10, 13, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 126, 0, 41, 42, 57, 58, 64, 65, 90, 92, 94, 95, 122, 123, 65535, 10, 13, 0, 65535, 9, 13, 32, 34, 0, 65535, 9, 13, 34, 92, 127, 0, 31, 32, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 44, 0, 65535, 10, 13, 0, 127, 128, 65535, 10, 13, 0, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 61, 84, 116, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 61, 65, 97, 126, 0, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 61, 76, 108, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 61, 69, 101, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 61, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 44, 61, 0, 65535, 10, 13, 0, 65535, 9, 13, 32, 44, 61, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 70, 84, 91, 102, 116, 126, 0, 41, 42, 57, 58, 64, 65, 90, 92, 94, 95, 122, 123, 65535, 10, 13, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 70, 84, 91, 102, 116, 126, 0, 41, 42, 57, 58, 64, 65, 90, 92, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 65, 97, 126, 0, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 76, 108, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 83, 115, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 69, 101, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 44, 0, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 82, 114, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 85, 117, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 10, 13, 0, 65535, 9, 13, 34, 92, 127, 0, 31, 32, 255, 256, 65535, 10, 13, 34, 0, 65535, 10, 13, 34, 0, 127, 128, 65535, 9, 13, 32, 34, 44, 92, 127, 0, 31, 33, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 34, 44, 92, 127, 0, 31, 33, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 34, 44, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 65, 68, 78, 79, 81, 82, 83, 92, 97, 100, 110, 111, 113, 114, 115, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 65, 68, 78, 79, 81, 82, 83, 92, 97, 100, 110, 111, 113, 114, 115, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 34, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 34, 44, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 34, 44, 92, 127, 0, 31, 33, 255, 256, 65535, 10, 13, 0, 65535, 10, 13, 0, 127, 128, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 34, 58, 92, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 58, 92, 93, 127, 0, 31, 32, 255, 256, 65535, 9, 13, 34, 58, 92, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 46, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 46, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 46, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 92, 93, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 92, 93, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 92, 93, 127, 0, 31, 32, 255, 256, 65535, 9, 13, 34, 46, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 46, 92, 127, 0, 31, 32, 255, 256, 65535, 9, 13, 34, 46, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 46, 92, 127, 0, 31, 32, 255, 256, 65535, 9, 13, 34, 46, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 46, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 58, 92, 93, 127, 0, 31, 32, 255, 256, 65535, 9, 13, 34, 92, 127, 0, 31, 32, 47, 48, 57, 58, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 46, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 46, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 46, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 46, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 46, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 46, 92, 127, 0, 31, 32, 255, 256, 65535, 9, 13, 34, 58, 92, 127, 0, 31, 32, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 76, 92, 108, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 71, 92, 103, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 79, 92, 111, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 82, 92, 114, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 73, 92, 105, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 84, 92, 116, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 72, 92, 104, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 77, 92, 109, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 79, 92, 111, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 77, 92, 109, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 65, 92, 97, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 73, 92, 105, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 78, 92, 110, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 34, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 34, 44, 92, 127, 0, 31, 33, 255, 256, 65535, 13, 34, 0, 65535, 10, 13, 34, 0, 65535, 9, 13, 32, 34, 44, 92, 127, 0, 31, 33, 255, 256, 65535, 10, 13, 34, 0, 65535, 9, 13, 32, 34, 44, 92, 127, 0, 31, 33, 255, 256, 65535, 10, 13, 34, 0, 65535, 9, 13, 34, 92, 127, 0, 31, 32, 255, 256, 65535, 10, 13, 34, 0, 127, 128, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 65, 68, 78, 79, 81, 82, 83, 92, 97, 100, 110, 111, 113, 114, 115, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 10, 13, 34, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 65, 68, 78, 79, 81, 82, 83, 92, 97, 100, 110, 111, 113, 114, 115, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 10, 13, 34, 0, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 10, 13, 34, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 10, 13, 34, 0, 65535, 9, 13, 32, 34, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 10, 13, 34, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 34, 44, 61, 0, 65535, 10, 13, 34, 0, 65535, 9, 13, 32, 34, 44, 61, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 65, 68, 78, 79, 81, 82, 83, 97, 100, 110, 111, 113, 114, 115, 126, 0, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 65535, 10, 13, 34, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 65, 68, 78, 79, 81, 82, 83, 97, 100, 110, 111, 113, 114, 115, 126, 0, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 76, 108, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 10, 13, 34, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 79, 111, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 126, 0, 41, 42, 57, 58, 64, 65, 90, 92, 94, 95, 122, 123, 65535, 10, 13, 34, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 126, 0, 41, 42, 57, 58, 64, 65, 90, 92, 94, 95, 122, 123, 65535, 10, 13, 34, 0, 65535, 9, 13, 32, 34, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 34, 44, 0, 65535, 10, 13, 34, 0, 65535, 9, 13, 32, 34, 44, 0, 65535, 10, 13, 34, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 79, 111, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 78, 110, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 67, 99, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 69, 101, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 34, 44, 61, 0, 65535, 10, 13, 34, 0, 65535, 9, 13, 32, 34, 44, 61, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 126, 0, 41, 42, 57, 58, 64, 65, 90, 92, 94, 95, 122, 123, 65535, 10, 13, 34, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 126, 0, 41, 42, 57, 58, 64, 65, 90, 92, 94, 95, 122, 123, 65535, 10, 13, 34, 0, 65535, 9, 13, 32, 34, 0, 65535, 9, 13, 32, 34, 44, 92, 127, 0, 31, 33, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 34, 44, 92, 127, 0, 31, 33, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 34, 44, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 65, 68, 78, 79, 81, 82, 83, 92, 97, 100, 110, 111, 113, 114, 115, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 65, 68, 78, 79, 81, 82, 83, 92, 97, 100, 110, 111, 113, 114, 115, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 34, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 34, 44, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 92, 127, 0, 31, 33, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 34, 58, 92, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 58, 92, 93, 127, 0, 31, 32, 255, 256, 65535, 9, 13, 34, 58, 92, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 46, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 46, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 46, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 92, 93, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 92, 93, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 92, 93, 127, 0, 31, 32, 255, 256, 65535, 9, 13, 32, 34, 44, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 34, 46, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 46, 92, 127, 0, 31, 32, 255, 256, 65535, 9, 13, 34, 46, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 46, 92, 127, 0, 31, 32, 255, 256, 65535, 9, 13, 34, 46, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 46, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 58, 92, 93, 127, 0, 31, 32, 255, 256, 65535, 9, 13, 34, 92, 127, 0, 31, 32, 47, 48, 57, 58, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 46, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 46, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 46, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 46, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 46, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 46, 92, 127, 0, 31, 32, 255, 256, 65535, 9, 13, 34, 58, 92, 127, 0, 31, 32, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 76, 92, 108, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 71, 92, 103, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 79, 92, 111, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 82, 92, 114, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 73, 92, 105, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 84, 92, 116, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 72, 92, 104, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 77, 92, 109, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 79, 92, 111, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 77, 92, 109, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 65, 92, 97, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 73, 92, 105, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 78, 92, 110, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 34, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 34, 44, 92, 127, 0, 31, 33, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 79, 92, 111, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 78, 92, 110, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 67, 92, 99, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 69, 92, 101, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 34, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 34, 44, 92, 127, 0, 31, 33, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 80, 92, 112, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 65, 92, 97, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 81, 92, 113, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 85, 92, 117, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 69, 92, 101, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 34, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 34, 44, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 34, 44, 92, 127, 0, 31, 33, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 34, 44, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 65, 68, 78, 79, 81, 82, 83, 92, 97, 100, 110, 111, 113, 114, 115, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 65, 68, 78, 79, 81, 82, 83, 92, 97, 100, 110, 111, 113, 114, 115, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 34, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 34, 44, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 34, 58, 92, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 58, 92, 93, 127, 0, 31, 32, 255, 256, 65535, 9, 13, 34, 58, 92, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 46, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 46, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 46, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 92, 93, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 92, 93, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 92, 93, 127, 0, 31, 32, 255, 256, 65535, 9, 13, 32, 34, 44, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 34, 46, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 46, 92, 127, 0, 31, 32, 255, 256, 65535, 9, 13, 34, 46, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 46, 92, 127, 0, 31, 32, 255, 256, 65535, 9, 13, 34, 46, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 46, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 58, 92, 93, 127, 0, 31, 32, 255, 256, 65535, 9, 13, 34, 92, 127, 0, 31, 32, 47, 48, 57, 58, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 46, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 46, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 46, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 46, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 46, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 46, 92, 127, 0, 31, 32, 255, 256, 65535, 9, 13, 34, 58, 92, 127, 0, 31, 32, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 76, 92, 108, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 71, 92, 103, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 79, 92, 111, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 82, 92, 114, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 73, 92, 105, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 84, 92, 116, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 72, 92, 104, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 77, 92, 109, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 79, 92, 111, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 77, 92, 109, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 65, 92, 97, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 73, 92, 105, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 78, 92, 110, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 34, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 34, 44, 92, 127, 0, 31, 33, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 79, 92, 111, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 78, 92, 110, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 67, 92, 99, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 69, 92, 101, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 34, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 34, 44, 92, 127, 0, 31, 33, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 80, 92, 112, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 65, 92, 97, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 81, 92, 113, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 85, 92, 117, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 69, 92, 101, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 34, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 34, 44, 92, 127, 0, 31, 33, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 79, 92, 111, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 80, 92, 112, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 34, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 34, 44, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 34, 44, 92, 127, 0, 31, 33, 255, 256, 65535, 10, 13, 34, 0, 65535, 9, 13, 32, 34, 44, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 65, 68, 78, 79, 81, 82, 83, 92, 97, 100, 110, 111, 113, 114, 115, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 10, 13, 34, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 65, 68, 78, 79, 81, 82, 83, 92, 97, 100, 110, 111, 113, 114, 115, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 10, 13, 34, 0, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 10, 13, 34, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 10, 13, 34, 0, 65535, 9, 13, 32, 34, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 10, 13, 34, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 34, 44, 61, 0, 65535, 10, 13, 34, 0, 65535, 9, 13, 32, 34, 44, 61, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 65, 68, 78, 79, 81, 82, 83, 97, 100, 110, 111, 113, 114, 115, 126, 0, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 65535, 10, 13, 34, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 65, 68, 78, 79, 81, 82, 83, 97, 100, 110, 111, 113, 114, 115, 126, 0, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 76, 108, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 10, 13, 34, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 79, 111, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 126, 0, 41, 42, 57, 58, 64, 65, 90, 92, 94, 95, 122, 123, 65535, 10, 13, 34, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 126, 0, 41, 42, 57, 58, 64, 65, 90, 92, 94, 95, 122, 123, 65535, 10, 13, 34, 0, 65535, 9, 13, 32, 34, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 34, 44, 0, 65535, 10, 13, 34, 0, 65535, 9, 13, 32, 34, 44, 0, 65535, 10, 13, 34, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 79, 111, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 78, 110, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 67, 99, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 69, 101, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 34, 44, 61, 0, 65535, 10, 13, 34, 0, 65535, 9, 13, 32, 34, 44, 61, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 126, 0, 41, 42, 57, 58, 64, 65, 90, 92, 94, 95, 122, 123, 65535, 10, 13, 34, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 126, 0, 41, 42, 57, 58, 64, 65, 90, 92, 94, 95, 122, 123, 65535, 10, 13, 34, 0, 65535, 9, 13, 32, 34, 0, 65535, 13, 34, 58, 0, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 65535, 13, 34, 58, 93, 0, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 65535, 13, 34, 58, 93, 0, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 65535, 13, 34, 58, 93, 0, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 65535, 13, 34, 58, 93, 0, 65535, 13, 34, 58, 0, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 65535, 13, 34, 46, 58, 93, 0, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 65535, 13, 34, 0, 47, 48, 57, 58, 65535, 13, 34, 46, 0, 47, 48, 57, 58, 65535, 13, 34, 0, 47, 48, 57, 58, 65535, 13, 34, 46, 0, 47, 48, 57, 58, 65535, 13, 34, 0, 47, 48, 57, 58, 65535, 13, 34, 93, 0, 47, 48, 57, 58, 65535, 13, 34, 93, 0, 47, 48, 57, 58, 65535, 13, 34, 93, 0, 65535, 9, 13, 32, 34, 44, 0, 65535, 13, 34, 46, 0, 47, 48, 57, 58, 65535, 13, 34, 46, 0, 65535, 13, 34, 46, 0, 47, 48, 57, 58, 65535, 13, 34, 46, 0, 65535, 13, 34, 46, 58, 93, 0, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 65535, 13, 34, 46, 58, 93, 0, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 65535, 13, 34, 58, 93, 0, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 65535, 13, 34, 58, 93, 0, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 65535, 13, 34, 58, 93, 0, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 65535, 13, 34, 58, 93, 0, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 65535, 13, 34, 58, 93, 0, 65535, 13, 34, 0, 47, 48, 57, 58, 64, 65, 70, 71, 96, 97, 102, 103, 65535, 13, 34, 46, 58, 93, 0, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 65535, 13, 34, 46, 58, 93, 0, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 65535, 13, 34, 46, 58, 93, 0, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 65535, 13, 34, 0, 47, 48, 57, 58, 65535, 13, 34, 46, 0, 47, 48, 57, 58, 65535, 13, 34, 46, 0, 47, 48, 57, 58, 65535, 13, 34, 46, 0, 65535, 13, 34, 58, 0, 65535, 10, 13, 34, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 80, 112, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 65, 97, 126, 0, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 81, 113, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 85, 117, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 69, 101, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 34, 44, 61, 0, 65535, 10, 13, 34, 0, 65535, 9, 13, 32, 34, 44, 61, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 126, 0, 41, 42, 57, 58, 64, 65, 90, 92, 94, 95, 122, 123, 65535, 10, 13, 34, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 126, 0, 41, 42, 57, 58, 64, 65, 90, 92, 94, 95, 122, 123, 65535, 10, 13, 34, 0, 65535, 9, 13, 32, 34, 0, 65535, 9, 13, 32, 34, 44, 92, 127, 0, 31, 33, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 34, 44, 92, 127, 0, 31, 33, 255, 256, 65535, 10, 13, 34, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 79, 111, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 80, 112, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 34, 44, 61, 0, 65535, 10, 13, 34, 0, 65535, 9, 13, 32, 34, 44, 61, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 126, 0, 41, 42, 57, 58, 64, 65, 90, 92, 94, 95, 122, 123, 65535, 10, 13, 34, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 126, 0, 41, 42, 57, 58, 64, 65, 90, 92, 94, 95, 122, 123, 65535, 10, 13, 34, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 69, 101, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 65, 97, 126, 0, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 76, 108, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 77, 109, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 34, 44, 61, 0, 65535, 10, 13, 34, 0, 65535, 9, 13, 32, 34, 44, 61, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 126, 0, 41, 42, 57, 58, 64, 65, 90, 92, 94, 95, 122, 123, 65535, 10, 13, 34, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 126, 0, 41, 42, 57, 58, 64, 65, 90, 92, 94, 95, 122, 123, 65535, 10, 13, 34, 0, 65535, 9, 13, 32, 34, 0, 65535, 9, 13, 32, 34, 44, 92, 127, 0, 31, 33, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 34, 44, 92, 127, 0, 31, 33, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 34, 44, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 65, 68, 78, 79, 81, 82, 83, 92, 97, 100, 110, 111, 113, 114, 115, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 65, 68, 78, 79, 81, 82, 83, 92, 97, 100, 110, 111, 113, 114, 115, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 34, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 34, 44, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 92, 127, 0, 31, 33, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 34, 58, 92, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 58, 92, 93, 127, 0, 31, 32, 255, 256, 65535, 9, 13, 34, 58, 92, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 46, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 46, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 46, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 92, 93, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 92, 93, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 92, 93, 127, 0, 31, 32, 255, 256, 65535, 9, 13, 32, 34, 44, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 34, 46, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 46, 92, 127, 0, 31, 32, 255, 256, 65535, 9, 13, 34, 46, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 46, 92, 127, 0, 31, 32, 255, 256, 65535, 9, 13, 34, 46, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 46, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 58, 92, 93, 127, 0, 31, 32, 255, 256, 65535, 9, 13, 34, 92, 127, 0, 31, 32, 47, 48, 57, 58, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 46, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 46, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 46, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 46, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 46, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 46, 92, 127, 0, 31, 32, 255, 256, 65535, 9, 13, 34, 58, 92, 127, 0, 31, 32, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 76, 92, 108, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 71, 92, 103, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 79, 92, 111, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 82, 92, 114, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 73, 92, 105, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 84, 92, 116, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 72, 92, 104, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 77, 92, 109, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 79, 92, 111, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 77, 92, 109, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 65, 92, 97, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 73, 92, 105, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 78, 92, 110, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 34, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 34, 44, 92, 127, 0, 31, 33, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 79, 92, 111, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 78, 92, 110, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 67, 92, 99, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 69, 92, 101, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 34, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 34, 44, 92, 127, 0, 31, 33, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 80, 92, 112, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 65, 92, 97, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 81, 92, 113, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 85, 92, 117, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 69, 92, 101, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 34, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 34, 44, 92, 127, 0, 31, 33, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 79, 92, 111, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 80, 92, 112, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 34, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 34, 44, 92, 127, 0, 31, 33, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 69, 92, 101, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 65, 92, 97, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 76, 92, 108, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 77, 92, 109, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 34, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 34, 44, 92, 127, 0, 31, 33, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 84, 92, 116, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 65, 92, 97, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 76, 92, 108, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 69, 92, 101, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 70, 84, 91, 92, 102, 116, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 70, 84, 91, 92, 102, 116, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 65, 92, 97, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 76, 92, 108, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 83, 92, 115, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 69, 92, 101, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 82, 92, 114, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 85, 92, 117, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 10, 13, 0, 65535, 10, 13, 34, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 84, 116, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 65, 97, 126, 0, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 76, 108, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 69, 101, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 34, 44, 61, 0, 65535, 10, 13, 34, 0, 65535, 9, 13, 32, 34, 44, 61, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 70, 84, 91, 102, 116, 126, 0, 41, 42, 57, 58, 64, 65, 90, 92, 94, 95, 122, 123, 65535, 10, 13, 34, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 70, 84, 91, 102, 116, 126, 0, 41, 42, 57, 58, 64, 65, 90, 92, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 65, 97, 126, 0, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 76, 108, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 83, 115, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 69, 101, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 34, 44, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 82, 114, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 85, 117, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 10, 13, 34, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 77, 109, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 65, 97, 126, 0, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 73, 105, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 78, 110, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 34, 44, 61, 0, 65535, 10, 13, 34, 0, 65535, 9, 13, 32, 34, 44, 61, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 126, 0, 41, 42, 57, 58, 64, 65, 90, 92, 94, 95, 122, 123, 65535, 10, 13, 34, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 126, 0, 41, 42, 57, 58, 64, 65, 90, 92, 94, 95, 122, 123, 65535, 10, 13, 34, 0, 65535, 9, 13, 32, 34, 0, 65535, 9, 13, 32, 34, 44, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 34, 44, 92, 127, 0, 31, 33, 255, 256, 65535, 10, 13, 34, 0, 65535, 9, 13, 32, 34, 44, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 80, 112, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 65, 97, 126, 0, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 81, 113, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 85, 117, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 69, 101, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 34, 44, 61, 0, 65535, 10, 13, 34, 0, 65535, 9, 13, 32, 34, 44, 61, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 126, 0, 41, 42, 57, 58, 64, 65, 90, 92, 94, 95, 122, 123, 65535, 10, 13, 34, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 126, 0, 41, 42, 57, 58, 64, 65, 90, 92, 94, 95, 122, 123, 65535, 10, 13, 34, 0, 65535, 9, 13, 32, 34, 0, 65535, 13, 34, 58, 0, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 65535, 13, 34, 58, 93, 0, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 65535, 13, 34, 58, 93, 0, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 65535, 13, 34, 58, 93, 0, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 65535, 13, 34, 58, 93, 0, 65535, 13, 34, 58, 0, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 65535, 13, 34, 46, 58, 93, 0, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 65535, 13, 34, 0, 47, 48, 57, 58, 65535, 13, 34, 46, 0, 47, 48, 57, 58, 65535, 13, 34, 0, 47, 48, 57, 58, 65535, 13, 34, 46, 0, 47, 48, 57, 58, 65535, 13, 34, 0, 47, 48, 57, 58, 65535, 13, 34, 93, 0, 47, 48, 57, 58, 65535, 13, 34, 93, 0, 47, 48, 57, 58, 65535, 13, 34, 93, 0, 65535, 9, 13, 32, 34, 44, 0, 65535, 13, 34, 46, 0, 47, 48, 57, 58, 65535, 13, 34, 46, 0, 65535, 13, 34, 46, 0, 47, 48, 57, 58, 65535, 13, 34, 46, 0, 65535, 13, 34, 46, 58, 93, 0, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 65535, 13, 34, 46, 58, 93, 0, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 65535, 13, 34, 58, 93, 0, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 65535, 13, 34, 58, 93, 0, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 65535, 13, 34, 58, 93, 0, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 65535, 13, 34, 58, 93, 0, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 65535, 13, 34, 58, 93, 0, 65535, 13, 34, 0, 47, 48, 57, 58, 64, 65, 70, 71, 96, 97, 102, 103, 65535, 13, 34, 46, 58, 93, 0, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 65535, 13, 34, 46, 58, 93, 0, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 65535, 13, 34, 46, 58, 93, 0, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 65535, 13, 34, 0, 47, 48, 57, 58, 65535, 13, 34, 46, 0, 47, 48, 57, 58, 65535, 13, 34, 46, 0, 47, 48, 57, 58, 65535, 13, 34, 46, 0, 65535, 13, 34, 58, 0, 65535, 10, 13, 34, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 79, 111, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 80, 112, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 34, 44, 61, 0, 65535, 10, 13, 34, 0, 65535, 9, 13, 32, 34, 44, 61, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 126, 0, 41, 42, 57, 58, 64, 65, 90, 92, 94, 95, 122, 123, 65535, 10, 13, 34, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 126, 0, 41, 42, 57, 58, 64, 65, 90, 92, 94, 95, 122, 123, 65535, 10, 13, 34, 0, 65535, 9, 13, 32, 34, 0, 65535, 9, 13, 32, 34, 44, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 34, 44, 92, 127, 0, 31, 33, 255, 256, 65535, 10, 13, 34, 0, 65535, 9, 13, 32, 34, 44, 92, 127, 0, 31, 33, 255, 256, 65535, 10, 13, 34, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 69, 101, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 65, 97, 126, 0, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 76, 108, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 77, 109, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 34, 44, 61, 0, 65535, 10, 13, 34, 0, 65535, 9, 13, 32, 34, 44, 61, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 126, 0, 41, 42, 57, 58, 64, 65, 90, 92, 94, 95, 122, 123, 65535, 10, 13, 34, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 126, 0, 41, 42, 57, 58, 64, 65, 90, 92, 94, 95, 122, 123, 65535, 10, 13, 34, 0, 65535, 9, 13, 32, 34, 0, 65535, 10, 13, 34, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 84, 116, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 65, 97, 126, 0, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 76, 108, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 69, 101, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 34, 44, 61, 0, 65535, 10, 13, 34, 0, 65535, 9, 13, 32, 34, 44, 61, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 70, 84, 91, 102, 116, 126, 0, 41, 42, 57, 58, 64, 65, 90, 92, 94, 95, 122, 123, 65535, 10, 13, 34, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 70, 84, 91, 102, 116, 126, 0, 41, 42, 57, 58, 64, 65, 90, 92, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 65, 97, 126, 0, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 76, 108, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 83, 115, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 69, 101, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 34, 44, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 82, 114, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 85, 117, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 10, 13, 34, 0, 65535, 10, 13, 34, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 71, 103, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 79, 111, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 82, 114, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 73, 105, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 84, 116, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 72, 104, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 77, 109, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 34, 44, 61, 0, 65535, 10, 13, 34, 0, 65535, 9, 13, 32, 34, 44, 61, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 126, 0, 41, 42, 57, 58, 64, 65, 90, 92, 94, 95, 122, 123, 65535, 10, 13, 34, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 126, 0, 41, 42, 57, 58, 64, 65, 90, 92, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 10, 13, 34, 0, 65535, 9, 13, 34, 58, 92, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 58, 92, 93, 127, 0, 31, 32, 255, 256, 65535, 9, 13, 34, 58, 92, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 46, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 46, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 46, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 92, 93, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 92, 93, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 92, 93, 127, 0, 31, 32, 255, 256, 65535, 9, 13, 32, 34, 44, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 34, 46, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 46, 92, 127, 0, 31, 32, 255, 256, 65535, 9, 13, 34, 46, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 46, 92, 127, 0, 31, 32, 255, 256, 65535, 9, 13, 34, 46, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 46, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 58, 92, 93, 127, 0, 31, 32, 255, 256, 65535, 9, 13, 34, 92, 127, 0, 31, 32, 47, 48, 57, 58, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 46, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 46, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 46, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 46, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 46, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 46, 92, 127, 0, 31, 32, 255, 256, 65535, 9, 13, 34, 58, 92, 127, 0, 31, 32, 255, 256, 65535, 10, 13, 34, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 76, 92, 108, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 71, 92, 103, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 79, 92, 111, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 82, 92, 114, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 73, 92, 105, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 84, 92, 116, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 72, 92, 104, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 77, 92, 109, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 10, 13, 34, 0, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 10, 13, 34, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 10, 13, 34, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 79, 92, 111, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 77, 92, 109, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 65, 92, 97, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 73, 92, 105, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 78, 92, 110, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 10, 13, 34, 0, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 10, 13, 34, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 10, 13, 34, 0, 65535, 9, 13, 32, 34, 92, 127, 0, 31, 33, 255, 256, 65535, 10, 13, 34, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 79, 92, 111, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 78, 92, 110, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 67, 92, 99, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 69, 92, 101, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 10, 13, 34, 0, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 10, 13, 34, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 10, 13, 34, 0, 65535, 9, 13, 32, 34, 92, 127, 0, 31, 33, 255, 256, 65535, 10, 13, 34, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 80, 92, 112, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 65, 92, 97, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 81, 92, 113, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 85, 92, 117, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 69, 92, 101, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 10, 13, 34, 0, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 10, 13, 34, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 10, 13, 34, 0, 65535, 9, 13, 32, 34, 92, 127, 0, 31, 33, 255, 256, 65535, 10, 13, 34, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 79, 92, 111, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 80, 92, 112, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 10, 13, 34, 0, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 10, 13, 34, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 10, 13, 34, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 69, 92, 101, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 65, 92, 97, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 76, 92, 108, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 77, 92, 109, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 10, 13, 34, 0, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 10, 13, 34, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 10, 13, 34, 0, 65535, 9, 13, 32, 34, 92, 127, 0, 31, 33, 255, 256, 65535, 10, 13, 34, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 84, 92, 116, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 65, 92, 97, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 76, 92, 108, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 69, 92, 101, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 10, 13, 34, 0, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 70, 84, 91, 92, 102, 116, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 10, 13, 34, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 70, 84, 91, 92, 102, 116, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 65, 92, 97, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 76, 92, 108, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 83, 92, 115, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 69, 92, 101, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 82, 92, 114, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 85, 92, 117, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 10, 13, 34, 0, 65535, 10, 13, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 69, 92, 101, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 65, 92, 97, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 76, 92, 108, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 77, 92, 109, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 34, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 34, 44, 92, 127, 0, 31, 33, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 84, 92, 116, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 65, 92, 97, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 76, 92, 108, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 69, 92, 101, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 70, 84, 91, 92, 102, 116, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 70, 84, 91, 92, 102, 116, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 65, 92, 97, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 76, 92, 108, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 83, 92, 115, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 69, 92, 101, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 82, 92, 114, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 85, 92, 117, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 10, 13, 0, 65535, 10, 13, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 79, 92, 111, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 80, 92, 112, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 34, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 34, 44, 92, 127, 0, 31, 33, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 69, 92, 101, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 65, 92, 97, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 76, 92, 108, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 77, 92, 109, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 34, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 34, 44, 92, 127, 0, 31, 33, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 84, 92, 116, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 65, 92, 97, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 76, 92, 108, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 69, 92, 101, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 70, 84, 91, 92, 102, 116, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 70, 84, 91, 92, 102, 116, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 65, 92, 97, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 76, 92, 108, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 83, 92, 115, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 69, 92, 101, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 82, 92, 114, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 85, 92, 117, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 10, 13, 0, 65535, 10, 13, 34, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 77, 109, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 65, 97, 126, 0, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 73, 105, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 78, 110, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 34, 44, 61, 0, 65535, 10, 13, 34, 0, 65535, 9, 13, 32, 34, 44, 61, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 126, 0, 41, 42, 57, 58, 64, 65, 90, 92, 94, 95, 122, 123, 65535, 10, 13, 34, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 126, 0, 41, 42, 57, 58, 64, 65, 90, 92, 94, 95, 122, 123, 65535, 10, 13, 34, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 71, 103, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 79, 111, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 82, 114, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 73, 105, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 84, 116, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 72, 104, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 77, 109, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 34, 44, 61, 0, 65535, 10, 13, 34, 0, 65535, 9, 13, 32, 34, 44, 61, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 126, 0, 41, 42, 57, 58, 64, 65, 90, 92, 94, 95, 122, 123, 65535, 10, 13, 34, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 126, 0, 41, 42, 57, 58, 64, 65, 90, 92, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 10, 13, 34, 0, 65535, 9, 13, 34, 58, 92, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 58, 92, 93, 127, 0, 31, 32, 255, 256, 65535, 9, 13, 34, 58, 92, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 46, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 46, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 46, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 92, 93, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 92, 93, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 92, 93, 127, 0, 31, 32, 255, 256, 65535, 9, 13, 32, 34, 44, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 34, 46, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 46, 92, 127, 0, 31, 32, 255, 256, 65535, 9, 13, 34, 46, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 46, 92, 127, 0, 31, 32, 255, 256, 65535, 9, 13, 34, 46, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 46, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 58, 92, 93, 127, 0, 31, 32, 255, 256, 65535, 9, 13, 34, 92, 127, 0, 31, 32, 47, 48, 57, 58, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 46, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 46, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 46, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 46, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 46, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 46, 92, 127, 0, 31, 32, 255, 256, 65535, 9, 13, 34, 58, 92, 127, 0, 31, 32, 255, 256, 65535, 10, 13, 34, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 76, 92, 108, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 71, 92, 103, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 79, 92, 111, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 82, 92, 114, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 73, 92, 105, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 84, 92, 116, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 72, 92, 104, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 77, 92, 109, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 10, 13, 34, 0, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 10, 13, 34, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 10, 13, 34, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 79, 92, 111, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 77, 92, 109, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 65, 92, 97, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 73, 92, 105, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 78, 92, 110, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 10, 13, 34, 0, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 10, 13, 34, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 10, 13, 34, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 79, 92, 111, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 78, 92, 110, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 67, 92, 99, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 69, 92, 101, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 10, 13, 34, 0, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 10, 13, 34, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 10, 13, 34, 0, 65535, 9, 13, 32, 34, 92, 127, 0, 31, 33, 255, 256, 65535, 10, 13, 34, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 80, 92, 112, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 65, 92, 97, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 81, 92, 113, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 85, 92, 117, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 69, 92, 101, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 10, 13, 34, 0, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 10, 13, 34, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 10, 13, 34, 0, 65535, 9, 13, 32, 34, 92, 127, 0, 31, 33, 255, 256, 65535, 10, 13, 34, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 79, 92, 111, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 80, 92, 112, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 10, 13, 34, 0, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 10, 13, 34, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 10, 13, 34, 0, 65535, 9, 13, 32, 34, 92, 127, 0, 31, 33, 255, 256, 65535, 10, 13, 34, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 69, 92, 101, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 65, 92, 97, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 76, 92, 108, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 77, 92, 109, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 10, 13, 34, 0, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 10, 13, 34, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 10, 13, 34, 0, 65535, 9, 13, 32, 34, 92, 127, 0, 31, 33, 255, 256, 65535, 10, 13, 34, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 84, 92, 116, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 65, 92, 97, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 76, 92, 108, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 69, 92, 101, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 10, 13, 34, 0, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 70, 84, 91, 92, 102, 116, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 10, 13, 34, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 70, 84, 91, 92, 102, 116, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 65, 92, 97, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 76, 92, 108, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 83, 92, 115, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 69, 92, 101, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 82, 92, 114, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 85, 92, 117, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 10, 13, 34, 0, 65535, 10, 13, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 79, 92, 111, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 78, 92, 110, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 67, 92, 99, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 69, 92, 101, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 34, 92, 127, 0, 31, 33, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 80, 92, 112, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 65, 92, 97, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 81, 92, 113, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 85, 92, 117, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 69, 92, 101, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 34, 92, 127, 0, 31, 33, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 79, 92, 111, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 80, 92, 112, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 34, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 34, 44, 92, 127, 0, 31, 33, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 69, 92, 101, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 65, 92, 97, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 76, 92, 108, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 77, 92, 109, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 34, 92, 127, 0, 31, 33, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 84, 92, 116, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 65, 92, 97, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 76, 92, 108, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 69, 92, 101, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 70, 84, 91, 92, 102, 116, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 70, 84, 91, 92, 102, 116, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 65, 92, 97, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 76, 92, 108, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 83, 92, 115, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 69, 92, 101, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 82, 92, 114, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 85, 92, 117, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 10, 13, 0, 65535, 10, 13, 0, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 61, 77, 109, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 61, 65, 97, 126, 0, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 61, 73, 105, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 61, 78, 110, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 61, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 44, 61, 0, 65535, 10, 13, 0, 65535, 9, 13, 32, 44, 61, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 126, 0, 41, 42, 57, 58, 64, 65, 90, 92, 94, 95, 122, 123, 65535, 10, 13, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 126, 0, 41, 42, 57, 58, 64, 65, 90, 92, 94, 95, 122, 123, 65535, 10, 13, 0, 65535, 9, 13, 32, 34, 0, 65535, 9, 13, 34, 92, 127, 0, 31, 32, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 61, 71, 103, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 61, 79, 111, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 61, 82, 114, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 61, 73, 105, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 61, 84, 116, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 61, 72, 104, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 61, 77, 109, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 61, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 44, 61, 0, 65535, 10, 13, 0, 65535, 9, 13, 32, 44, 61, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 126, 0, 41, 42, 57, 58, 64, 65, 90, 92, 94, 95, 122, 123, 65535, 10, 13, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 126, 0, 41, 42, 57, 58, 64, 65, 90, 92, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 10, 13, 0, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 61, 79, 111, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 61, 77, 109, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 61, 65, 97, 126, 0, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 61, 73, 105, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 61, 78, 110, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 61, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 44, 61, 0, 65535, 10, 13, 0, 65535, 9, 13, 32, 44, 61, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 126, 0, 41, 42, 57, 58, 64, 65, 90, 92, 94, 95, 122, 123, 65535, 10, 13, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 126, 0, 41, 42, 57, 58, 64, 65, 90, 92, 94, 95, 122, 123, 65535, 10, 13, 0, 65535, 9, 13, 32, 34, 0, 65535, 9, 13, 34, 92, 127, 0, 31, 32, 255, 256, 65535, 9, 13, 34, 92, 127, 0, 31, 32, 255, 256, 65535, 10, 13, 34, 0, 65535, 10, 13, 34, 0, 127, 128, 65535, 9, 13, 32, 34, 44, 92, 127, 0, 31, 33, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 34, 44, 92, 127, 0, 31, 33, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 34, 44, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 65, 68, 78, 79, 81, 82, 83, 92, 97, 100, 110, 111, 113, 114, 115, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 65, 68, 78, 79, 81, 82, 83, 92, 97, 100, 110, 111, 113, 114, 115, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 92, 127, 0, 31, 33, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 34, 58, 92, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 58, 92, 93, 127, 0, 31, 32, 255, 256, 65535, 9, 13, 34, 58, 92, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 46, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 46, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 46, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 92, 93, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 92, 93, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 92, 93, 127, 0, 31, 32, 255, 256, 65535, 9, 13, 32, 34, 44, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 34, 46, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 46, 92, 127, 0, 31, 32, 255, 256, 65535, 9, 13, 34, 46, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 46, 92, 127, 0, 31, 32, 255, 256, 65535, 9, 13, 34, 46, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 46, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 58, 92, 93, 127, 0, 31, 32, 255, 256, 65535, 9, 13, 34, 92, 127, 0, 31, 32, 47, 48, 57, 58, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 46, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 46, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 46, 58, 92, 93, 127, 0, 31, 32, 47, 48, 57, 59, 64, 65, 70, 71, 96, 97, 102, 103, 255, 256, 65535, 9, 13, 34, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 46, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 46, 92, 127, 0, 31, 32, 47, 48, 57, 58, 255, 256, 65535, 9, 13, 34, 46, 92, 127, 0, 31, 32, 255, 256, 65535, 9, 13, 34, 58, 92, 127, 0, 31, 32, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 76, 92, 108, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 71, 92, 103, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 79, 92, 111, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 82, 92, 114, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 73, 92, 105, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 84, 92, 116, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 72, 92, 104, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 77, 92, 109, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 79, 92, 111, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 77, 92, 109, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 65, 92, 97, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 73, 92, 105, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 78, 92, 110, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 34, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 34, 44, 92, 127, 0, 31, 33, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 79, 92, 111, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 78, 92, 110, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 67, 92, 99, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 69, 92, 101, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 80, 92, 112, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 65, 92, 97, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 81, 92, 113, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 85, 92, 117, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 69, 92, 101, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 79, 92, 111, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 80, 92, 112, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 34, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 34, 44, 92, 127, 0, 31, 33, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 69, 92, 101, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 65, 92, 97, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 76, 92, 108, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 77, 92, 109, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 84, 92, 116, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 65, 92, 97, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 76, 92, 108, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 69, 92, 101, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 61, 92, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 34, 44, 61, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 70, 84, 91, 92, 102, 116, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 10, 13, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 70, 84, 91, 92, 102, 116, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 93, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 65, 92, 97, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 76, 92, 108, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 83, 92, 115, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 69, 92, 101, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 34, 44, 92, 127, 0, 31, 33, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 82, 92, 114, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 85, 92, 117, 126, 127, 0, 31, 35, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 255, 256, 65535, 10, 13, 0, 65535, 10, 13, 0, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 61, 79, 111, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 61, 80, 112, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 61, 126, 0, 41, 42, 57, 58, 64, 65, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 44, 61, 0, 65535, 10, 13, 0, 65535, 9, 13, 32, 44, 61, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 126, 0, 41, 42, 57, 58, 64, 65, 90, 92, 94, 95, 122, 123, 65535, 10, 13, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 91, 126, 0, 41, 42, 57, 58, 64, 65, 90, 92, 94, 95, 122, 123, 65535, 10, 13, 0, 65535, 9, 13, 32, 34, 0, 65535, 9, 13, 34, 92, 127, 0, 31, 32, 255, 256, 65535, 9, 13, 34, 92, 127, 0, 31, 32, 255, 256, 65535, 10, 13, 34, 0, 65535, 10, 13, 34, 0, 127, 128, 65535, 10, 13, 0, 65535, 13, 73, 105, 0, 65535, 13, 71, 103, 0, 65535, 13, 69, 101, 0, 65535, 13, 83, 115, 0, 65535, 13, 84, 116, 0, 65535, 9, 13, 32, 0, 65535, 10, 13, 0, 65535, 9, 13, 32, 0, 65535, 87, 119, 87, 119, 13, 0, 65535, 9, 13, 32, 0, 65535, 9, 13, 32, 0, 65535, 9, 13, 32, 0, 65535, 9, 13, 32, 0, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 65, 68, 78, 79, 81, 82, 83, 97, 100, 110, 111, 113, 114, 115, 126, 0, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 0, 65535, 9, 13, 32, 0, 65535, 9, 13, 32, 0, 65535, 9, 13, 32, 0, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 65, 68, 78, 79, 81, 82, 83, 97, 100, 110, 111, 113, 114, 115, 126, 0, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 0, 65535, 9, 13, 32, 0, 65535, 9, 13, 32, 0, 65535, 9, 13, 32, 0, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 65, 68, 78, 79, 81, 82, 83, 97, 100, 110, 111, 113, 114, 115, 126, 0, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 0, 65535, 9, 13, 32, 0, 65535, 9, 13, 32, 0, 65535, 9, 13, 32, 0, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 65, 68, 78, 79, 81, 82, 83, 97, 100, 110, 111, 113, 114, 115, 126, 0, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 0, 65535, 9, 13, 32, 0, 65535, 9, 13, 32, 0, 65535, 13, 34, 0, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 65, 68, 78, 79, 81, 82, 83, 97, 100, 110, 111, 113, 114, 115, 126, 0, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 0, 65535, 9, 13, 32, 0, 65535, 9, 13, 32, 0, 65535, 9, 13, 32, 0, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 65, 68, 78, 79, 81, 82, 83, 97, 100, 110, 111, 113, 114, 115, 126, 0, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 0, 65535, 9, 13, 32, 0, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 65, 68, 78, 79, 81, 82, 83, 97, 100, 110, 111, 113, 114, 115, 126, 0, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 34, 0, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 65, 68, 78, 79, 81, 82, 83, 97, 100, 110, 111, 113, 114, 115, 126, 0, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 65, 68, 78, 79, 81, 82, 83, 97, 100, 110, 111, 113, 114, 115, 126, 0, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 0, 65535, 9, 13, 32, 0, 65535, 9, 13, 32, 0, 65535, 9, 13, 32, 0, 65535, 9, 13, 32, 0, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 65, 68, 78, 79, 81, 82, 83, 97, 100, 110, 111, 113, 114, 115, 126, 0, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 0, 65535, 9, 13, 32, 0, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 65, 68, 78, 79, 81, 82, 83, 97, 100, 110, 111, 113, 114, 115, 126, 0, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 0, 65535, 9, 13, 32, 0, 65535, 9, 13, 32, 0, 65535, 13, 34, 0, 65535, 9, 13, 32, 34, 0, 65535, 9, 13, 32, 34, 0, 65535, 9, 13, 32, 34, 0, 65535, 9, 13, 32, 34, 0, 65535, 9, 13, 32, 34, 0, 65535, 9, 13, 32, 34, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 65, 68, 78, 79, 81, 82, 83, 97, 100, 110, 111, 113, 114, 115, 126, 0, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 34, 0, 65535, 9, 13, 32, 34, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 65, 68, 78, 79, 81, 82, 83, 97, 100, 110, 111, 113, 114, 115, 126, 0, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 34, 0, 65535, 9, 13, 32, 34, 0, 65535, 9, 13, 32, 34, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 65, 68, 78, 79, 81, 82, 83, 97, 100, 110, 111, 113, 114, 115, 126, 0, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 34, 0, 65535, 9, 13, 32, 34, 0, 65535, 9, 13, 32, 34, 0, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 65, 68, 78, 79, 81, 82, 83, 97, 100, 110, 111, 113, 114, 115, 126, 0, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 65, 68, 78, 79, 81, 82, 83, 97, 100, 110, 111, 113, 114, 115, 126, 0, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 0, 65535, 9, 13, 32, 0, 65535, 9, 13, 32, 0, 65535, 9, 13, 32, 0, 65535, 9, 13, 32, 0, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 65, 68, 78, 79, 81, 82, 83, 97, 100, 110, 111, 113, 114, 115, 126, 0, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 0, 65535, 9, 13, 32, 0, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 65, 68, 78, 79, 81, 82, 83, 97, 100, 110, 111, 113, 114, 115, 126, 0, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 0, 65535, 9, 13, 32, 0, 65535, 9, 13, 32, 0, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 65, 68, 78, 79, 81, 82, 83, 97, 100, 110, 111, 113, 114, 115, 126, 0, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 0, 65535, 9, 13, 32, 0, 65535, 9, 13, 32, 0, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 65, 68, 78, 79, 81, 82, 83, 97, 100, 110, 111, 113, 114, 115, 126, 0, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 0, 65535, 9, 13, 32, 0, 65535, 9, 13, 32, 0, 65535, 9, 13, 32, 0, 65535, 9, 13, 32, 0, 65535, 9, 13, 32, 0, 65535, 9, 13, 32, 0, 65535, 9, 13, 32, 0, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 65, 68, 78, 79, 81, 82, 83, 97, 100, 110, 111, 113, 114, 115, 126, 0, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 65, 68, 78, 79, 81, 82, 83, 97, 100, 110, 111, 113, 114, 115, 126, 0, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 0, 65535, 9, 13, 32, 0, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 65, 68, 78, 79, 81, 82, 83, 97, 100, 110, 111, 113, 114, 115, 126, 0, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 0, 65535, 9, 13, 32, 0, 65535, 9, 13, 32, 0, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 65, 68, 78, 79, 81, 82, 83, 97, 100, 110, 111, 113, 114, 115, 126, 0, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 0, 65535, 9, 13, 32, 0, 65535, 9, 13, 32, 0, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 65, 68, 78, 79, 81, 82, 83, 97, 100, 110, 111, 113, 114, 115, 126, 0, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 0, 65535, 9, 13, 32, 0, 65535, 9, 13, 32, 0, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 65, 68, 78, 79, 81, 82, 83, 97, 100, 110, 111, 113, 114, 115, 126, 0, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 0, 65535, 9, 13, 32, 0, 65535, 9, 13, 32, 0, 65535, 9, 13, 32, 34, 0, 65535, 9, 13, 32, 34, 0, 65535, 9, 13, 32, 34, 0, 65535, 9, 13, 32, 34, 0, 65535, 9, 13, 32, 34, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 65, 68, 78, 79, 81, 82, 83, 97, 100, 110, 111, 113, 114, 115, 126, 0, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 34, 0, 65535, 9, 13, 32, 34, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 65, 68, 78, 79, 81, 82, 83, 97, 100, 110, 111, 113, 114, 115, 126, 0, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 34, 0, 65535, 9, 13, 32, 34, 0, 65535, 9, 13, 32, 34, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 65, 68, 78, 79, 81, 82, 83, 97, 100, 110, 111, 113, 114, 115, 126, 0, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 34, 0, 65535, 9, 13, 32, 34, 0, 65535, 9, 13, 32, 34, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 65, 68, 78, 79, 81, 82, 83, 97, 100, 110, 111, 113, 114, 115, 126, 0, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 34, 0, 65535, 9, 13, 32, 34, 0, 65535, 9, 13, 32, 34, 0, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 65, 68, 78, 79, 81, 82, 83, 97, 100, 110, 111, 113, 114, 115, 126, 0, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 65, 68, 78, 79, 81, 82, 83, 97, 100, 110, 111, 113, 114, 115, 126, 0, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 34, 0, 65535, 9, 13, 32, 34, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 65, 68, 78, 79, 81, 82, 83, 97, 100, 110, 111, 113, 114, 115, 126, 0, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 34, 0, 65535, 9, 13, 32, 34, 0, 65535, 9, 13, 32, 34, 0, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 65, 68, 78, 79, 81, 82, 83, 97, 100, 110, 111, 113, 114, 115, 126, 0, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 65, 68, 78, 79, 81, 82, 83, 97, 100, 110, 111, 113, 114, 115, 126, 0, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 0, 65535, 9, 13, 32, 0, 65535, 9, 13, 32, 0, 65535, 9, 13, 32, 0, 65535, 9, 13, 32, 0, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 65, 68, 78, 79, 81, 82, 83, 97, 100, 110, 111, 113, 114, 115, 126, 0, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 0, 65535, 9, 13, 32, 0, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 65, 68, 78, 79, 81, 82, 83, 97, 100, 110, 111, 113, 114, 115, 126, 0, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 0, 65535, 9, 13, 32, 0, 65535, 9, 13, 32, 0, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 65, 68, 78, 79, 81, 82, 83, 97, 100, 110, 111, 113, 114, 115, 126, 0, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 0, 65535, 9, 13, 32, 0, 65535, 9, 13, 32, 0, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 65, 68, 78, 79, 81, 82, 83, 97, 100, 110, 111, 113, 114, 115, 126, 0, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 0, 65535, 9, 13, 32, 0, 65535, 9, 13, 32, 0, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 65, 68, 78, 79, 81, 82, 83, 97, 100, 110, 111, 113, 114, 115, 126, 0, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 0, 65535, 9, 13, 32, 0, 65535, 9, 13, 32, 0, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 65, 68, 78, 79, 81, 82, 83, 97, 100, 110, 111, 113, 114, 115, 126, 0, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 0, 65535, 9, 13, 32, 0, 65535, 9, 13, 32, 0, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 65, 68, 78, 79, 81, 82, 83, 97, 100, 110, 111, 113, 114, 115, 126, 0, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 0, 65535, 9, 13, 32, 0, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 65, 68, 78, 79, 81, 82, 83, 97, 100, 110, 111, 113, 114, 115, 126, 0, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 65, 68, 78, 79, 81, 82, 83, 97, 100, 110, 111, 113, 114, 115, 126, 0, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 34, 0, 65535, 9, 13, 32, 34, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 65, 68, 78, 79, 81, 82, 83, 97, 100, 110, 111, 113, 114, 115, 126, 0, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 34, 0, 65535, 9, 13, 32, 34, 0, 65535, 9, 13, 32, 34, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 65, 68, 78, 79, 81, 82, 83, 97, 100, 110, 111, 113, 114, 115, 126, 0, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 34, 0, 65535, 9, 13, 32, 34, 0, 65535, 9, 13, 32, 34, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 65, 68, 78, 79, 81, 82, 83, 97, 100, 110, 111, 113, 114, 115, 126, 0, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 34, 0, 65535, 9, 13, 32, 34, 0, 65535, 9, 13, 32, 34, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 65, 68, 78, 79, 81, 82, 83, 97, 100, 110, 111, 113, 114, 115, 126, 0, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 65, 68, 78, 79, 81, 82, 83, 97, 100, 110, 111, 113, 114, 115, 126, 0, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 34, 0, 65535, 9, 13, 32, 34, 0, 65535, 9, 13, 32, 34, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 65, 68, 78, 79, 81, 82, 83, 97, 100, 110, 111, 113, 114, 115, 126, 0, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 34, 0, 65535, 9, 13, 32, 34, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 65, 68, 78, 79, 81, 82, 83, 97, 100, 110, 111, 113, 114, 115, 126, 0, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 65, 68, 78, 79, 81, 82, 83, 97, 100, 110, 111, 113, 114, 115, 126, 0, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 34, 0, 65535, 9, 13, 32, 34, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 65, 68, 78, 79, 81, 82, 83, 97, 100, 110, 111, 113, 114, 115, 126, 0, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 65, 68, 78, 79, 81, 82, 83, 97, 100, 110, 111, 113, 114, 115, 126, 0, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 34, 0, 65535, 9, 13, 32, 34, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 65, 68, 78, 79, 81, 82, 83, 97, 100, 110, 111, 113, 114, 115, 126, 0, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 34, 0, 65535, 9, 13, 32, 34, 0, 65535, 9, 13, 32, 34, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 65, 68, 78, 79, 81, 82, 83, 97, 100, 110, 111, 113, 114, 115, 126, 0, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 34, 0, 65535, 9, 13, 32, 34, 0, 65535, 9, 13, 32, 34, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 65, 68, 78, 79, 81, 82, 83, 97, 100, 110, 111, 113, 114, 115, 126, 0, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 34, 0, 65535, 9, 13, 32, 34, 0, 65535, 9, 13, 32, 34, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 65, 68, 78, 79, 81, 82, 83, 97, 100, 110, 111, 113, 114, 115, 126, 0, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 34, 0, 65535, 9, 13, 32, 34, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 65, 68, 78, 79, 81, 82, 83, 97, 100, 110, 111, 113, 114, 115, 126, 0, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 34, 0, 65535, 9, 13, 32, 34, 0, 65535, 9, 13, 32, 34, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 65, 68, 78, 79, 81, 82, 83, 97, 100, 110, 111, 113, 114, 115, 126, 0, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 34, 0, 65535, 9, 13, 32, 34, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 65, 68, 78, 79, 81, 82, 83, 97, 100, 110, 111, 113, 114, 115, 126, 0, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 65, 68, 78, 79, 81, 82, 83, 97, 100, 110, 111, 113, 114, 115, 126, 0, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 0, 65535, 9, 13, 32, 0, 65535, 9, 13, 32, 0, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 65, 68, 78, 79, 81, 82, 83, 97, 100, 110, 111, 113, 114, 115, 126, 0, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 0, 65535, 9, 13, 32, 0, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 65, 68, 78, 79, 81, 82, 83, 97, 100, 110, 111, 113, 114, 115, 126, 0, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 65, 68, 78, 79, 81, 82, 83, 97, 100, 110, 111, 113, 114, 115, 126, 0, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 0, 65535, 9, 13, 32, 0, 65535, 9, 13, 32, 0, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 65, 68, 78, 79, 81, 82, 83, 97, 100, 110, 111, 113, 114, 115, 126, 0, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 0, 65535, 9, 13, 32, 0, 65535, 9, 13, 32, 0, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 65, 68, 78, 79, 81, 82, 83, 97, 100, 110, 111, 113, 114, 115, 126, 0, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 0, 65535, 9, 13, 32, 0, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 65, 68, 78, 79, 81, 82, 83, 97, 100, 110, 111, 113, 114, 115, 126, 0, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 65, 68, 78, 79, 81, 82, 83, 97, 100, 110, 111, 113, 114, 115, 126, 0, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 34, 0, 65535, 9, 13, 32, 34, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 65, 68, 78, 79, 81, 82, 83, 97, 100, 110, 111, 113, 114, 115, 126, 0, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 34, 0, 65535, 9, 13, 32, 34, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 65, 68, 78, 79, 81, 82, 83, 97, 100, 110, 111, 113, 114, 115, 126, 0, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 65, 68, 78, 79, 81, 82, 83, 97, 100, 110, 111, 113, 114, 115, 126, 0, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 34, 0, 65535, 9, 13, 32, 34, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 65, 68, 78, 79, 81, 82, 83, 97, 100, 110, 111, 113, 114, 115, 126, 0, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 34, 0, 65535, 9, 13, 32, 34, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 65, 68, 78, 79, 81, 82, 83, 97, 100, 110, 111, 113, 114, 115, 126, 0, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 34, 0, 65535, 9, 13, 32, 34, 0, 65535, 9, 13, 32, 34, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 65, 68, 78, 79, 81, 82, 83, 97, 100, 110, 111, 113, 114, 115, 126, 0, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 34, 0, 65535, 9, 13, 32, 34, 0, 65535, 9, 13, 32, 34, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 65, 68, 78, 79, 81, 82, 83, 97, 100, 110, 111, 113, 114, 115, 126, 0, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 34, 0, 65535, 9, 13, 32, 34, 0, 65535, 9, 13, 32, 34, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 65, 68, 78, 79, 81, 82, 83, 97, 100, 110, 111, 113, 114, 115, 126, 0, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 34, 0, 65535, 9, 13, 32, 34, 0, 65535, 9, 13, 32, 34, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 65, 68, 78, 79, 81, 82, 83, 97, 100, 110, 111, 113, 114, 115, 126, 0, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 34, 0, 65535, 9, 13, 32, 34, 0, 65535, 9, 13, 32, 33, 34, 37, 39, 44, 47, 65, 68, 78, 79, 81, 82, 83, 97, 100, 110, 111, 113, 114, 115, 126, 0, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 65, 68, 78, 79, 81, 82, 83, 97, 100, 110, 111, 113, 114, 115, 126, 0, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 0, 65535, 9, 13, 32, 0, 65535, 9, 13, 32, 0, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 65, 68, 78, 79, 81, 82, 83, 97, 100, 110, 111, 113, 114, 115, 126, 0, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 0, 65535, 9, 13, 32, 0, 65535, 9, 13, 32, 0, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 65, 68, 78, 79, 81, 82, 83, 97, 100, 110, 111, 113, 114, 115, 126, 0, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 0, 65535, 9, 13, 32, 0, 65535, 9, 13, 32, 0, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 65, 68, 78, 79, 81, 82, 83, 97, 100, 110, 111, 113, 114, 115, 126, 0, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 0, 65535, 9, 13, 32, 0, 65535, 9, 13, 32, 0, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 65, 68, 78, 79, 81, 82, 83, 97, 100, 110, 111, 113, 114, 115, 126, 0, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 0, 65535, 9, 13, 32, 0, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 65, 68, 78, 79, 81, 82, 83, 97, 100, 110, 111, 113, 114, 115, 126, 0, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 65, 68, 78, 79, 81, 82, 83, 97, 100, 110, 111, 113, 114, 115, 126, 0, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 0, 65535, 9, 13, 32, 0, 65535, 9, 13, 32, 0, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 65, 68, 78, 79, 81, 82, 83, 97, 100, 110, 111, 113, 114, 115, 126, 0, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 0, 65535, 9, 13, 32, 0, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 65, 68, 78, 79, 81, 82, 83, 97, 100, 110, 111, 113, 114, 115, 126, 0, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 0, 65535, 9, 13, 32, 0, 65535, 9, 13, 32, 0, 65535, 9, 13, 32, 34, 0, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 65, 68, 78, 79, 81, 82, 83, 97, 100, 110, 111, 113, 114, 115, 126, 0, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 65, 68, 78, 79, 81, 82, 83, 97, 100, 110, 111, 113, 114, 115, 126, 0, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 0, 65535, 9, 13, 32, 0, 65535, 9, 13, 32, 0, 65535, 9, 13, 32, 0, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 65, 68, 78, 79, 81, 82, 83, 97, 100, 110, 111, 113, 114, 115, 126, 0, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 0, 65535, 9, 13, 32, 0, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 65, 68, 78, 79, 81, 82, 83, 97, 100, 110, 111, 113, 114, 115, 126, 0, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 0, 65535, 9, 13, 32, 0, 65535, 9, 13, 32, 0, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 65, 68, 78, 79, 81, 82, 83, 97, 100, 110, 111, 113, 114, 115, 126, 0, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 0, 65535, 9, 13, 32, 0, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 65, 68, 78, 79, 81, 82, 83, 97, 100, 110, 111, 113, 114, 115, 126, 0, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 0, 65535, 9, 13, 32, 0, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 65, 68, 78, 79, 81, 82, 83, 97, 100, 110, 111, 113, 114, 115, 126, 0, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 0, 65535, 9, 13, 32, 0, 65535, 9, 13, 32, 0, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 65, 68, 78, 79, 81, 82, 83, 97, 100, 110, 111, 113, 114, 115, 126, 0, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 0, 65535, 9, 13, 32, 0, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 65, 68, 78, 79, 81, 82, 83, 97, 100, 110, 111, 113, 114, 115, 126, 0, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 0, 65535, 9, 13, 32, 0, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 65, 68, 78, 79, 81, 82, 83, 97, 100, 110, 111, 113, 114, 115, 126, 0, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 65, 68, 78, 79, 81, 82, 83, 97, 100, 110, 111, 113, 114, 115, 126, 0, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 65535, 9, 13, 32, 0, 65535, 9, 13, 32, 0, 65535, 9, 13, 32, 0, 65535, 9, 13, 32, 34, 0, 65535, 9, 13, 32, 33, 37, 39, 44, 47, 65, 68, 78, 79, 81, 82, 83, 97, 100, 110, 111, 113, 114, 115, 126, 0, 41, 42, 57, 58, 64, 66, 90, 91, 94, 95, 122, 123, 65535, 0]; _tsip_machine_parser_header_WWW_Authenticate_single_lengths = [0, 4, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 7, 1, 2, 7, 2, 7, 3, 3, 3, 3, 3, 23, 2, 23, 10, 5, 2, 5, 23, 2, 23, 12, 2, 12, 11, 2, 11, 2, 4, 5, 2, 4, 4, 2, 4, 2, 12, 12, 12, 12, 10, 5, 2, 5, 11, 2, 11, 2, 4, 5, 2, 4, 2, 9, 2, 3, 3, 3, 3, 2, 4, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 4, 4, 3, 3, 3, 3, 3, 1, 4, 4, 4, 1, 2, 2, 2, 2, 2, 12, 12, 12, 12, 12, 10, 5, 2, 5, 11, 2, 11, 2, 4, 5, 2, 4, 2, 2, 12, 12, 10, 5, 2, 5, 11, 2, 11, 2, 4, 5, 2, 3, 4, 2, 4, 12, 12, 12, 12, 10, 5, 2, 5, 11, 2, 11, 2, 4, 5, 2, 4, 2, 2, 12, 12, 12, 12, 10, 5, 2, 5, 15, 2, 15, 11, 11, 11, 11, 4, 11, 11, 2, 5, 3, 3, 7, 2, 7, 2, 7, 26, 2, 26, 13, 8, 2, 8, 13, 2, 13, 2, 6, 7, 7, 2, 2, 12, 6, 7, 7, 7, 7, 6, 8, 5, 6, 5, 6, 5, 6, 6, 6, 6, 6, 6, 6, 8, 8, 7, 7, 7, 7, 7, 5, 8, 8, 8, 5, 6, 6, 6, 6, 2, 15, 15, 15, 15, 15, 15, 15, 15, 13, 8, 2, 8, 13, 2, 13, 12, 2, 15, 15, 15, 15, 15, 13, 8, 2, 8, 13, 2, 13, 2, 6, 7, 2, 3, 7, 3, 7, 3, 5, 3, 26, 3, 26, 13, 8, 3, 8, 13, 3, 13, 3, 6, 12, 3, 11, 6, 3, 6, 24, 3, 24, 13, 3, 13, 11, 3, 11, 3, 4, 10, 5, 3, 5, 3, 13, 13, 13, 13, 11, 6, 3, 6, 11, 3, 11, 3, 4, 7, 2, 7, 2, 7, 26, 2, 26, 13, 8, 2, 8, 13, 2, 13, 2, 6, 7, 12, 7, 2, 6, 7, 7, 7, 7, 6, 8, 5, 6, 5, 6, 5, 6, 6, 6, 7, 6, 6, 6, 6, 8, 8, 7, 7, 7, 7, 7, 5, 8, 8, 8, 5, 6, 6, 6, 6, 2, 15, 15, 15, 15, 15, 15, 15, 15, 13, 8, 2, 8, 13, 2, 13, 12, 2, 15, 15, 15, 15, 15, 13, 8, 2, 8, 13, 2, 13, 2, 6, 7, 2, 15, 15, 15, 15, 13, 8, 2, 8, 13, 2, 13, 2, 6, 7, 2, 15, 15, 15, 15, 15, 13, 8, 2, 8, 13, 2, 13, 2, 6, 7, 7, 2, 7, 26, 2, 26, 13, 8, 2, 8, 13, 2, 13, 2, 6, 7, 12, 2, 6, 7, 7, 7, 7, 6, 8, 5, 6, 5, 6, 5, 6, 6, 6, 7, 6, 6, 6, 6, 8, 8, 7, 7, 7, 7, 7, 5, 8, 8, 8, 5, 6, 6, 6, 6, 2, 15, 15, 15, 15, 15, 15, 15, 15, 13, 8, 2, 8, 13, 2, 13, 12, 2, 15, 15, 15, 15, 15, 13, 8, 2, 8, 13, 2, 13, 2, 6, 7, 2, 15, 15, 15, 15, 13, 8, 2, 8, 13, 2, 13, 2, 6, 7, 2, 15, 15, 15, 15, 15, 13, 8, 2, 8, 13, 2, 13, 2, 6, 7, 2, 15, 15, 13, 8, 2, 8, 13, 2, 13, 2, 6, 7, 7, 3, 7, 26, 3, 26, 13, 8, 3, 8, 13, 3, 13, 3, 6, 12, 3, 11, 6, 3, 6, 24, 3, 24, 13, 3, 13, 11, 3, 11, 3, 4, 10, 5, 3, 5, 3, 13, 13, 13, 13, 11, 6, 3, 6, 11, 3, 11, 3, 4, 3, 4, 4, 4, 4, 3, 5, 2, 3, 2, 3, 2, 3, 3, 3, 5, 3, 3, 3, 3, 5, 5, 4, 4, 4, 4, 4, 2, 5, 5, 5, 2, 3, 3, 3, 3, 3, 13, 13, 13, 13, 13, 11, 6, 3, 6, 11, 3, 11, 3, 4, 7, 2, 7, 3, 13, 13, 11, 6, 3, 6, 11, 3, 11, 3, 13, 13, 13, 13, 11, 6, 3, 6, 11, 3, 11, 3, 4, 7, 2, 7, 2, 7, 26, 2, 26, 13, 8, 2, 8, 13, 2, 13, 2, 6, 7, 12, 7, 2, 6, 7, 7, 7, 7, 6, 8, 5, 6, 5, 6, 5, 6, 6, 6, 7, 6, 6, 6, 6, 8, 8, 7, 7, 7, 7, 7, 5, 8, 8, 8, 5, 6, 6, 6, 6, 2, 15, 15, 15, 15, 15, 15, 15, 15, 13, 8, 2, 8, 13, 2, 13, 12, 2, 15, 15, 15, 15, 15, 13, 8, 2, 8, 13, 2, 13, 2, 6, 7, 2, 15, 15, 15, 15, 13, 8, 2, 8, 13, 2, 13, 2, 6, 7, 2, 15, 15, 15, 15, 15, 13, 8, 2, 8, 13, 2, 13, 2, 6, 7, 2, 15, 15, 13, 8, 2, 8, 13, 2, 13, 2, 6, 7, 2, 15, 15, 15, 15, 13, 8, 2, 8, 13, 2, 13, 2, 6, 7, 2, 15, 15, 15, 15, 13, 8, 2, 8, 17, 2, 17, 14, 14, 14, 14, 7, 14, 14, 2, 3, 13, 13, 13, 13, 11, 6, 3, 6, 15, 3, 15, 12, 12, 12, 12, 5, 12, 12, 3, 13, 13, 13, 13, 11, 6, 3, 6, 11, 3, 11, 3, 4, 7, 7, 3, 7, 13, 13, 13, 13, 13, 11, 6, 3, 6, 11, 3, 11, 3, 4, 3, 4, 4, 4, 4, 3, 5, 2, 3, 2, 3, 2, 3, 3, 3, 5, 3, 3, 3, 3, 5, 5, 4, 4, 4, 4, 4, 2, 5, 5, 5, 2, 3, 3, 3, 3, 3, 13, 13, 11, 6, 3, 6, 11, 3, 11, 3, 4, 7, 7, 3, 7, 3, 13, 13, 13, 13, 11, 6, 3, 6, 11, 3, 11, 3, 4, 3, 13, 13, 13, 13, 11, 6, 3, 6, 15, 3, 15, 12, 12, 12, 12, 5, 12, 12, 3, 3, 13, 13, 13, 13, 13, 13, 13, 11, 6, 3, 6, 11, 3, 11, 10, 3, 6, 7, 7, 7, 7, 6, 8, 5, 6, 5, 6, 5, 6, 6, 6, 7, 6, 6, 6, 6, 8, 8, 7, 7, 7, 7, 7, 5, 8, 8, 8, 5, 6, 6, 6, 6, 3, 15, 15, 15, 15, 15, 15, 15, 15, 13, 8, 3, 8, 13, 3, 13, 12, 3, 15, 15, 15, 15, 15, 13, 8, 3, 8, 13, 3, 13, 3, 6, 3, 15, 15, 15, 15, 13, 8, 3, 8, 13, 3, 13, 3, 6, 3, 15, 15, 15, 15, 15, 13, 8, 3, 8, 13, 3, 13, 3, 6, 3, 15, 15, 13, 8, 3, 8, 13, 3, 13, 3, 15, 15, 15, 15, 13, 8, 3, 8, 13, 3, 13, 3, 6, 3, 15, 15, 15, 15, 13, 8, 3, 8, 17, 3, 17, 14, 14, 14, 14, 7, 14, 14, 3, 2, 15, 15, 15, 15, 13, 8, 2, 8, 13, 2, 13, 2, 6, 7, 2, 15, 15, 15, 15, 13, 8, 2, 8, 17, 2, 17, 14, 14, 14, 14, 7, 14, 14, 2, 2, 15, 15, 13, 8, 2, 8, 13, 2, 13, 2, 6, 7, 2, 15, 15, 15, 15, 13, 8, 2, 8, 13, 2, 13, 2, 6, 7, 2, 15, 15, 15, 15, 13, 8, 2, 8, 17, 2, 17, 14, 14, 14, 14, 7, 14, 14, 2, 3, 13, 13, 13, 13, 11, 6, 3, 6, 11, 3, 11, 3, 13, 13, 13, 13, 13, 13, 13, 11, 6, 3, 6, 11, 3, 11, 10, 3, 6, 7, 7, 7, 7, 6, 8, 5, 6, 5, 6, 5, 6, 6, 6, 7, 6, 6, 6, 6, 8, 8, 7, 7, 7, 7, 7, 5, 8, 8, 8, 5, 6, 6, 6, 6, 3, 15, 15, 15, 15, 15, 15, 15, 15, 13, 8, 3, 8, 13, 3, 13, 12, 3, 15, 15, 15, 15, 15, 13, 8, 3, 8, 13, 3, 13, 3, 15, 15, 15, 15, 13, 8, 3, 8, 13, 3, 13, 3, 6, 3, 15, 15, 15, 15, 15, 13, 8, 3, 8, 13, 3, 13, 3, 6, 3, 15, 15, 13, 8, 3, 8, 13, 3, 13, 3, 6, 3, 15, 15, 15, 15, 13, 8, 3, 8, 13, 3, 13, 3, 6, 3, 15, 15, 15, 15, 13, 8, 3, 8, 17, 3, 17, 14, 14, 14, 14, 7, 14, 14, 3, 2, 15, 15, 15, 15, 13, 8, 2, 8, 13, 2, 13, 2, 6, 2, 15, 15, 15, 15, 15, 13, 8, 2, 8, 13, 2, 13, 2, 6, 2, 15, 15, 13, 8, 2, 8, 13, 2, 13, 2, 6, 7, 2, 15, 15, 15, 15, 13, 8, 2, 8, 13, 2, 13, 2, 6, 2, 15, 15, 15, 15, 13, 8, 2, 8, 17, 2, 17, 14, 14, 14, 14, 7, 14, 14, 2, 2, 12, 12, 12, 12, 10, 5, 2, 5, 11, 2, 11, 2, 4, 5, 2, 12, 12, 12, 12, 12, 12, 12, 10, 5, 2, 5, 11, 2, 11, 9, 2, 12, 12, 12, 12, 12, 10, 5, 2, 5, 11, 2, 11, 2, 4, 5, 5, 3, 3, 7, 2, 7, 2, 7, 26, 2, 26, 13, 8, 2, 8, 13, 2, 13, 12, 7, 2, 6, 7, 7, 7, 7, 6, 8, 5, 6, 5, 6, 5, 6, 6, 6, 7, 6, 6, 6, 6, 8, 8, 7, 7, 7, 7, 7, 5, 8, 8, 8, 5, 6, 6, 6, 6, 2, 15, 15, 15, 15, 15, 15, 15, 15, 13, 8, 2, 8, 13, 2, 13, 12, 2, 15, 15, 15, 15, 15, 13, 8, 2, 8, 13, 2, 13, 2, 6, 7, 2, 15, 15, 15, 15, 13, 8, 2, 8, 13, 2, 13, 2, 15, 15, 15, 15, 15, 13, 8, 2, 8, 13, 2, 13, 2, 15, 15, 13, 8, 2, 8, 13, 2, 13, 2, 6, 7, 2, 15, 15, 15, 15, 13, 8, 2, 8, 13, 2, 13, 2, 15, 15, 15, 15, 13, 8, 2, 8, 17, 2, 17, 14, 14, 14, 14, 7, 14, 14, 2, 2, 12, 12, 10, 5, 2, 5, 11, 2, 11, 2, 4, 5, 5, 3, 3, 2, 3, 3, 3, 3, 3, 3, 2, 3, 2, 2, 1, 3, 3, 3, 3, 23, 3, 3, 3, 3, 23, 3, 3, 3, 3, 23, 3, 3, 3, 3, 23, 3, 3, 3, 2, 23, 3, 3, 3, 3, 23, 3, 3, 23, 4, 23, 23, 3, 3, 3, 3, 3, 23, 3, 3, 23, 3, 3, 3, 2, 4, 4, 4, 4, 4, 4, 24, 4, 4, 24, 4, 4, 4, 24, 4, 4, 4, 23, 23, 3, 3, 3, 3, 3, 23, 3, 3, 23, 3, 3, 3, 23, 3, 3, 3, 23, 3, 3, 3, 3, 3, 3, 3, 3, 23, 23, 3, 3, 23, 3, 3, 3, 23, 3, 3, 3, 23, 3, 3, 3, 23, 3, 3, 3, 4, 4, 4, 4, 4, 24, 4, 4, 24, 4, 4, 4, 24, 4, 4, 4, 24, 4, 4, 4, 23, 24, 4, 4, 24, 4, 4, 4, 23, 23, 3, 3, 3, 3, 3, 23, 3, 3, 23, 3, 3, 3, 23, 3, 3, 3, 23, 3, 3, 3, 23, 3, 3, 3, 23, 3, 3, 3, 23, 3, 3, 23, 24, 4, 4, 24, 4, 4, 4, 24, 4, 4, 4, 24, 4, 4, 4, 24, 24, 4, 4, 4, 24, 4, 4, 24, 24, 4, 4, 24, 24, 4, 4, 24, 4, 4, 4, 24, 4, 4, 4, 24, 4, 4, 4, 24, 4, 4, 24, 4, 4, 4, 24, 4, 4, 24, 23, 3, 3, 3, 23, 3, 3, 23, 23, 3, 3, 3, 23, 3, 3, 3, 23, 3, 3, 23, 24, 4, 4, 24, 4, 4, 24, 24, 4, 4, 24, 4, 4, 24, 4, 4, 4, 24, 4, 4, 4, 24, 4, 4, 4, 24, 4, 4, 4, 24, 4, 4, 24, 23, 3, 3, 3, 23, 3, 3, 3, 23, 3, 3, 3, 23, 3, 3, 3, 23, 3, 3, 23, 23, 3, 3, 3, 23, 3, 3, 23, 3, 3, 3, 4, 23, 23, 3, 3, 3, 3, 23, 3, 3, 23, 3, 3, 3, 23, 3, 3, 23, 3, 3, 23, 3, 3, 3, 23, 3, 3, 23, 3, 3, 23, 23, 3, 3, 3, 4, 23]; _tsip_machine_parser_header_WWW_Authenticate_range_lengths = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 7, 1, 7, 7, 1, 1, 1, 7, 1, 7, 7, 1, 7, 7, 1, 7, 1, 1, 3, 1, 1, 1, 1, 1, 1, 7, 7, 7, 7, 7, 1, 1, 1, 7, 1, 7, 1, 1, 3, 1, 1, 2, 7, 7, 7, 7, 7, 1, 7, 7, 3, 3, 3, 3, 3, 3, 3, 1, 3, 1, 3, 1, 7, 7, 7, 7, 7, 7, 1, 7, 7, 7, 7, 3, 3, 3, 1, 1, 1, 7, 7, 7, 7, 7, 7, 1, 1, 1, 7, 1, 7, 1, 1, 3, 1, 1, 2, 1, 7, 7, 7, 1, 1, 1, 7, 1, 7, 1, 1, 3, 1, 1, 1, 1, 1, 7, 7, 7, 7, 7, 1, 1, 1, 7, 1, 7, 1, 1, 3, 1, 1, 2, 1, 7, 7, 7, 7, 7, 1, 1, 1, 7, 1, 7, 7, 7, 7, 7, 1, 7, 7, 1, 3, 1, 2, 3, 1, 3, 1, 3, 9, 1, 9, 9, 3, 1, 3, 9, 1, 9, 1, 3, 3, 3, 1, 2, 9, 9, 9, 9, 9, 3, 9, 9, 5, 5, 5, 5, 5, 5, 5, 3, 5, 3, 5, 3, 9, 9, 9, 9, 9, 9, 3, 9, 9, 9, 9, 5, 5, 5, 3, 3, 1, 9, 9, 9, 9, 9, 9, 9, 9, 9, 3, 1, 3, 9, 1, 9, 9, 1, 9, 9, 9, 9, 9, 9, 3, 1, 3, 9, 1, 9, 1, 3, 3, 1, 1, 3, 1, 3, 1, 3, 2, 9, 1, 9, 9, 3, 1, 3, 9, 1, 9, 1, 3, 9, 1, 7, 1, 1, 1, 7, 1, 7, 7, 1, 7, 7, 1, 7, 1, 1, 7, 1, 1, 1, 1, 7, 7, 7, 7, 7, 1, 1, 1, 7, 1, 7, 1, 1, 3, 1, 3, 1, 3, 9, 1, 9, 9, 3, 1, 3, 9, 1, 9, 1, 3, 3, 9, 3, 1, 9, 9, 9, 9, 3, 9, 9, 5, 5, 5, 5, 5, 5, 5, 3, 3, 5, 3, 5, 3, 9, 9, 9, 9, 9, 9, 3, 9, 9, 9, 9, 5, 5, 5, 3, 3, 1, 9, 9, 9, 9, 9, 9, 9, 9, 9, 3, 1, 3, 9, 1, 9, 9, 1, 9, 9, 9, 9, 9, 9, 3, 1, 3, 9, 1, 9, 1, 3, 3, 1, 9, 9, 9, 9, 9, 3, 1, 3, 9, 1, 9, 1, 3, 3, 1, 9, 9, 9, 9, 9, 9, 3, 1, 3, 9, 1, 9, 1, 3, 3, 3, 1, 3, 9, 1, 9, 9, 3, 1, 3, 9, 1, 9, 1, 3, 3, 9, 1, 9, 9, 9, 9, 3, 9, 9, 5, 5, 5, 5, 5, 5, 5, 3, 3, 5, 3, 5, 3, 9, 9, 9, 9, 9, 9, 3, 9, 9, 9, 9, 5, 5, 5, 3, 3, 1, 9, 9, 9, 9, 9, 9, 9, 9, 9, 3, 1, 3, 9, 1, 9, 9, 1, 9, 9, 9, 9, 9, 9, 3, 1, 3, 9, 1, 9, 1, 3, 3, 1, 9, 9, 9, 9, 9, 3, 1, 3, 9, 1, 9, 1, 3, 3, 1, 9, 9, 9, 9, 9, 9, 3, 1, 3, 9, 1, 9, 1, 3, 3, 1, 9, 9, 9, 3, 1, 3, 9, 1, 9, 1, 3, 3, 3, 1, 3, 9, 1, 9, 9, 3, 1, 3, 9, 1, 9, 1, 3, 9, 1, 7, 1, 1, 1, 7, 1, 7, 7, 1, 7, 7, 1, 7, 1, 1, 7, 1, 1, 1, 1, 7, 7, 7, 7, 7, 1, 1, 1, 7, 1, 7, 1, 1, 7, 7, 7, 7, 1, 7, 7, 3, 3, 3, 3, 3, 3, 3, 1, 1, 3, 1, 3, 1, 7, 7, 7, 7, 7, 7, 1, 7, 7, 7, 7, 3, 3, 3, 1, 1, 1, 7, 7, 7, 7, 7, 7, 1, 1, 1, 7, 1, 7, 1, 1, 3, 1, 3, 1, 7, 7, 7, 1, 1, 1, 7, 1, 7, 1, 7, 7, 7, 7, 7, 1, 1, 1, 7, 1, 7, 1, 1, 3, 1, 3, 1, 3, 9, 1, 9, 9, 3, 1, 3, 9, 1, 9, 1, 3, 3, 9, 3, 1, 9, 9, 9, 9, 3, 9, 9, 5, 5, 5, 5, 5, 5, 5, 3, 3, 5, 3, 5, 3, 9, 9, 9, 9, 9, 9, 3, 9, 9, 9, 9, 5, 5, 5, 3, 3, 1, 9, 9, 9, 9, 9, 9, 9, 9, 9, 3, 1, 3, 9, 1, 9, 9, 1, 9, 9, 9, 9, 9, 9, 3, 1, 3, 9, 1, 9, 1, 3, 3, 1, 9, 9, 9, 9, 9, 3, 1, 3, 9, 1, 9, 1, 3, 3, 1, 9, 9, 9, 9, 9, 9, 3, 1, 3, 9, 1, 9, 1, 3, 3, 1, 9, 9, 9, 3, 1, 3, 9, 1, 9, 1, 3, 3, 1, 9, 9, 9, 9, 9, 3, 1, 3, 9, 1, 9, 1, 3, 3, 1, 9, 9, 9, 9, 9, 3, 1, 3, 9, 1, 9, 9, 9, 9, 9, 3, 9, 9, 1, 1, 7, 7, 7, 7, 7, 1, 1, 1, 7, 1, 7, 7, 7, 7, 7, 1, 7, 7, 1, 7, 7, 7, 7, 7, 1, 1, 1, 7, 1, 7, 1, 1, 3, 3, 1, 3, 7, 7, 7, 7, 7, 7, 1, 1, 1, 7, 1, 7, 1, 1, 7, 7, 7, 7, 1, 7, 7, 3, 3, 3, 3, 3, 3, 3, 1, 1, 3, 1, 3, 1, 7, 7, 7, 7, 7, 7, 1, 7, 7, 7, 7, 3, 3, 3, 1, 1, 1, 7, 7, 7, 1, 1, 1, 7, 1, 7, 1, 1, 3, 3, 1, 3, 1, 7, 7, 7, 7, 7, 1, 1, 1, 7, 1, 7, 1, 1, 1, 7, 7, 7, 7, 7, 1, 1, 1, 7, 1, 7, 7, 7, 7, 7, 1, 7, 7, 1, 1, 7, 7, 7, 7, 7, 7, 7, 7, 1, 1, 1, 7, 1, 7, 7, 1, 9, 9, 9, 9, 3, 9, 9, 5, 5, 5, 5, 5, 5, 5, 3, 3, 5, 3, 5, 3, 9, 9, 9, 9, 9, 9, 3, 9, 9, 9, 9, 5, 5, 5, 3, 3, 1, 9, 9, 9, 9, 9, 9, 9, 9, 9, 3, 1, 3, 9, 1, 9, 9, 1, 9, 9, 9, 9, 9, 9, 3, 1, 3, 9, 1, 9, 1, 3, 1, 9, 9, 9, 9, 9, 3, 1, 3, 9, 1, 9, 1, 3, 1, 9, 9, 9, 9, 9, 9, 3, 1, 3, 9, 1, 9, 1, 3, 1, 9, 9, 9, 3, 1, 3, 9, 1, 9, 1, 9, 9, 9, 9, 9, 3, 1, 3, 9, 1, 9, 1, 3, 1, 9, 9, 9, 9, 9, 3, 1, 3, 9, 1, 9, 9, 9, 9, 9, 3, 9, 9, 1, 1, 9, 9, 9, 9, 9, 3, 1, 3, 9, 1, 9, 1, 3, 3, 1, 9, 9, 9, 9, 9, 3, 1, 3, 9, 1, 9, 9, 9, 9, 9, 3, 9, 9, 1, 1, 9, 9, 9, 3, 1, 3, 9, 1, 9, 1, 3, 3, 1, 9, 9, 9, 9, 9, 3, 1, 3, 9, 1, 9, 1, 3, 3, 1, 9, 9, 9, 9, 9, 3, 1, 3, 9, 1, 9, 9, 9, 9, 9, 3, 9, 9, 1, 1, 7, 7, 7, 7, 7, 1, 1, 1, 7, 1, 7, 1, 7, 7, 7, 7, 7, 7, 7, 7, 1, 1, 1, 7, 1, 7, 7, 1, 9, 9, 9, 9, 3, 9, 9, 5, 5, 5, 5, 5, 5, 5, 3, 3, 5, 3, 5, 3, 9, 9, 9, 9, 9, 9, 3, 9, 9, 9, 9, 5, 5, 5, 3, 3, 1, 9, 9, 9, 9, 9, 9, 9, 9, 9, 3, 1, 3, 9, 1, 9, 9, 1, 9, 9, 9, 9, 9, 9, 3, 1, 3, 9, 1, 9, 1, 9, 9, 9, 9, 9, 3, 1, 3, 9, 1, 9, 1, 3, 1, 9, 9, 9, 9, 9, 9, 3, 1, 3, 9, 1, 9, 1, 3, 1, 9, 9, 9, 3, 1, 3, 9, 1, 9, 1, 3, 1, 9, 9, 9, 9, 9, 3, 1, 3, 9, 1, 9, 1, 3, 1, 9, 9, 9, 9, 9, 3, 1, 3, 9, 1, 9, 9, 9, 9, 9, 3, 9, 9, 1, 1, 9, 9, 9, 9, 9, 3, 1, 3, 9, 1, 9, 1, 3, 1, 9, 9, 9, 9, 9, 9, 3, 1, 3, 9, 1, 9, 1, 3, 1, 9, 9, 9, 3, 1, 3, 9, 1, 9, 1, 3, 3, 1, 9, 9, 9, 9, 9, 3, 1, 3, 9, 1, 9, 1, 3, 1, 9, 9, 9, 9, 9, 3, 1, 3, 9, 1, 9, 9, 9, 9, 9, 3, 9, 9, 1, 1, 7, 7, 7, 7, 7, 1, 1, 1, 7, 1, 7, 1, 1, 3, 1, 7, 7, 7, 7, 7, 7, 7, 7, 1, 1, 1, 7, 1, 7, 7, 1, 7, 7, 7, 7, 7, 7, 1, 1, 1, 7, 1, 7, 1, 1, 3, 3, 1, 2, 3, 1, 3, 1, 3, 9, 1, 9, 9, 3, 1, 3, 9, 1, 9, 9, 3, 1, 9, 9, 9, 9, 3, 9, 9, 5, 5, 5, 5, 5, 5, 5, 3, 3, 5, 3, 5, 3, 9, 9, 9, 9, 9, 9, 3, 9, 9, 9, 9, 5, 5, 5, 3, 3, 1, 9, 9, 9, 9, 9, 9, 9, 9, 9, 3, 1, 3, 9, 1, 9, 9, 1, 9, 9, 9, 9, 9, 9, 3, 1, 3, 9, 1, 9, 1, 3, 3, 1, 9, 9, 9, 9, 9, 3, 1, 3, 9, 1, 9, 1, 9, 9, 9, 9, 9, 9, 3, 1, 3, 9, 1, 9, 1, 9, 9, 9, 3, 1, 3, 9, 1, 9, 1, 3, 3, 1, 9, 9, 9, 9, 9, 3, 1, 3, 9, 1, 9, 1, 9, 9, 9, 9, 9, 3, 1, 3, 9, 1, 9, 9, 9, 9, 9, 3, 9, 9, 1, 1, 7, 7, 7, 1, 1, 1, 7, 1, 7, 1, 1, 3, 3, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 7, 1, 1, 1, 1, 7, 1, 1, 1, 1, 7, 1, 1, 1, 1, 7, 1, 1, 1, 1, 7, 1, 1, 1, 1, 7, 1, 1, 7, 1, 7, 7, 1, 1, 1, 1, 1, 7, 1, 1, 7, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 7, 1, 1, 7, 1, 1, 1, 7, 1, 1, 1, 7, 7, 1, 1, 1, 1, 1, 7, 1, 1, 7, 1, 1, 1, 7, 1, 1, 1, 7, 1, 1, 1, 1, 1, 1, 1, 1, 7, 7, 1, 1, 7, 1, 1, 1, 7, 1, 1, 1, 7, 1, 1, 1, 7, 1, 1, 1, 1, 1, 1, 1, 1, 7, 1, 1, 7, 1, 1, 1, 7, 1, 1, 1, 7, 1, 1, 1, 7, 7, 1, 1, 7, 1, 1, 1, 7, 7, 1, 1, 1, 1, 1, 7, 1, 1, 7, 1, 1, 1, 7, 1, 1, 1, 7, 1, 1, 1, 7, 1, 1, 1, 7, 1, 1, 1, 7, 1, 1, 7, 7, 1, 1, 7, 1, 1, 1, 7, 1, 1, 1, 7, 1, 1, 1, 7, 7, 1, 1, 1, 7, 1, 1, 7, 7, 1, 1, 7, 7, 1, 1, 7, 1, 1, 1, 7, 1, 1, 1, 7, 1, 1, 1, 7, 1, 1, 7, 1, 1, 1, 7, 1, 1, 7, 7, 1, 1, 1, 7, 1, 1, 7, 7, 1, 1, 1, 7, 1, 1, 1, 7, 1, 1, 7, 7, 1, 1, 7, 1, 1, 7, 7, 1, 1, 7, 1, 1, 7, 1, 1, 1, 7, 1, 1, 1, 7, 1, 1, 1, 7, 1, 1, 1, 7, 1, 1, 7, 7, 1, 1, 1, 7, 1, 1, 1, 7, 1, 1, 1, 7, 1, 1, 1, 7, 1, 1, 7, 7, 1, 1, 1, 7, 1, 1, 7, 1, 1, 1, 1, 7, 7, 1, 1, 1, 1, 7, 1, 1, 7, 1, 1, 1, 7, 1, 1, 7, 1, 1, 7, 1, 1, 1, 7, 1, 1, 7, 1, 1, 7, 7, 1, 1, 1, 1, 7]; _tsip_machine_parser_header_WWW_Authenticate_index_offsets = [0, 0, 5, 8, 11, 14, 17, 19, 22, 25, 28, 31, 34, 37, 40, 43, 46, 49, 52, 55, 59, 68, 71, 75, 84, 88, 97, 102, 107, 112, 117, 122, 153, 157, 188, 206, 213, 217, 224, 255, 259, 290, 310, 314, 334, 353, 357, 376, 380, 386, 395, 399, 405, 411, 415, 421, 425, 445, 465, 485, 505, 523, 530, 534, 541, 560, 564, 583, 587, 593, 602, 606, 612, 617, 634, 644, 655, 666, 677, 682, 692, 704, 709, 715, 720, 726, 731, 737, 743, 747, 753, 757, 763, 767, 779, 791, 802, 813, 824, 835, 840, 849, 861, 873, 885, 890, 896, 902, 906, 910, 914, 934, 954, 974, 994, 1014, 1032, 1039, 1043, 1050, 1069, 1073, 1092, 1096, 1102, 1111, 1115, 1121, 1126, 1130, 1150, 1170, 1188, 1195, 1199, 1206, 1225, 1229, 1248, 1252, 1258, 1267, 1271, 1276, 1282, 1286, 1292, 1312, 1332, 1352, 1372, 1390, 1397, 1401, 1408, 1427, 1431, 1450, 1454, 1460, 1469, 1473, 1479, 1484, 1488, 1508, 1528, 1548, 1568, 1586, 1593, 1597, 1604, 1627, 1631, 1654, 1673, 1692, 1711, 1730, 1736, 1755, 1774, 1778, 1787, 1792, 1798, 1809, 1813, 1824, 1828, 1839, 1875, 1879, 1915, 1938, 1950, 1954, 1966, 1989, 1993, 2016, 2020, 2030, 2041, 2052, 2056, 2061, 2083, 2099, 2116, 2133, 2150, 2161, 2177, 2195, 2206, 2218, 2229, 2241, 2252, 2264, 2276, 2286, 2298, 2308, 2320, 2330, 2348, 2366, 2383, 2400, 2417, 2434, 2445, 2460, 2478, 2496, 2514, 2525, 2537, 2549, 2559, 2569, 2573, 2598, 2623, 2648, 2673, 2698, 2723, 2748, 2773, 2796, 2808, 2812, 2824, 2847, 2851, 2874, 2896, 2900, 2925, 2950, 2975, 3000, 3025, 3048, 3060, 3064, 3076, 3099, 3103, 3126, 3130, 3140, 3151, 3155, 3160, 3171, 3176, 3187, 3192, 3201, 3207, 3243, 3248, 3284, 3307, 3319, 3324, 3336, 3359, 3364, 3387, 3392, 3402, 3424, 3429, 3448, 3456, 3461, 3469, 3501, 3506, 3538, 3559, 3564, 3585, 3604, 3609, 3628, 3633, 3639, 3657, 3664, 3669, 3676, 3681, 3702, 3723, 3744, 3765, 3784, 3792, 3797, 3805, 3824, 3829, 3848, 3853, 3859, 3870, 3874, 3885, 3889, 3900, 3936, 3940, 3976, 3999, 4011, 4015, 4027, 4050, 4054, 4077, 4081, 4091, 4102, 4124, 4135, 4139, 4155, 4172, 4189, 4206, 4217, 4233, 4251, 4262, 4274, 4285, 4297, 4308, 4320, 4332, 4342, 4353, 4365, 4375, 4387, 4397, 4415, 4433, 4450, 4467, 4484, 4501, 4512, 4527, 4545, 4563, 4581, 4592, 4604, 4616, 4626, 4636, 4640, 4665, 4690, 4715, 4740, 4765, 4790, 4815, 4840, 4863, 4875, 4879, 4891, 4914, 4918, 4941, 4963, 4967, 4992, 5017, 5042, 5067, 5092, 5115, 5127, 5131, 5143, 5166, 5170, 5193, 5197, 5207, 5218, 5222, 5247, 5272, 5297, 5322, 5345, 5357, 5361, 5373, 5396, 5400, 5423, 5427, 5437, 5448, 5452, 5477, 5502, 5527, 5552, 5577, 5600, 5612, 5616, 5628, 5651, 5655, 5678, 5682, 5692, 5703, 5714, 5718, 5729, 5765, 5769, 5805, 5828, 5840, 5844, 5856, 5879, 5883, 5906, 5910, 5920, 5931, 5953, 5957, 5973, 5990, 6007, 6024, 6035, 6051, 6069, 6080, 6092, 6103, 6115, 6126, 6138, 6150, 6160, 6171, 6183, 6193, 6205, 6215, 6233, 6251, 6268, 6285, 6302, 6319, 6330, 6345, 6363, 6381, 6399, 6410, 6422, 6434, 6444, 6454, 6458, 6483, 6508, 6533, 6558, 6583, 6608, 6633, 6658, 6681, 6693, 6697, 6709, 6732, 6736, 6759, 6781, 6785, 6810, 6835, 6860, 6885, 6910, 6933, 6945, 6949, 6961, 6984, 6988, 7011, 7015, 7025, 7036, 7040, 7065, 7090, 7115, 7140, 7163, 7175, 7179, 7191, 7214, 7218, 7241, 7245, 7255, 7266, 7270, 7295, 7320, 7345, 7370, 7395, 7418, 7430, 7434, 7446, 7469, 7473, 7496, 7500, 7510, 7521, 7525, 7550, 7575, 7598, 7610, 7614, 7626, 7649, 7653, 7676, 7680, 7690, 7701, 7712, 7717, 7728, 7764, 7769, 7805, 7828, 7840, 7845, 7857, 7880, 7885, 7908, 7913, 7923, 7945, 7950, 7969, 7977, 7982, 7990, 8022, 8027, 8059, 8080, 8085, 8106, 8125, 8130, 8149, 8154, 8160, 8178, 8185, 8190, 8197, 8202, 8223, 8244, 8265, 8286, 8305, 8313, 8318, 8326, 8345, 8350, 8369, 8374, 8380, 8391, 8403, 8415, 8427, 8433, 8444, 8457, 8463, 8470, 8476, 8483, 8489, 8496, 8503, 8508, 8515, 8522, 8527, 8534, 8539, 8552, 8565, 8577, 8589, 8601, 8613, 8619, 8629, 8642, 8655, 8668, 8674, 8681, 8688, 8693, 8698, 8703, 8724, 8745, 8766, 8787, 8808, 8827, 8835, 8840, 8848, 8867, 8872, 8891, 8896, 8902, 8913, 8917, 8928, 8933, 8954, 8975, 8994, 9002, 9007, 9015, 9034, 9039, 9058, 9063, 9084, 9105, 9126, 9147, 9166, 9174, 9179, 9187, 9206, 9211, 9230, 9235, 9241, 9252, 9256, 9267, 9271, 9282, 9318, 9322, 9358, 9381, 9393, 9397, 9409, 9432, 9436, 9459, 9463, 9473, 9484, 9506, 9517, 9521, 9537, 9554, 9571, 9588, 9599, 9615, 9633, 9644, 9656, 9667, 9679, 9690, 9702, 9714, 9724, 9735, 9747, 9757, 9769, 9779, 9797, 9815, 9832, 9849, 9866, 9883, 9894, 9909, 9927, 9945, 9963, 9974, 9986, 9998, 10008, 10018, 10022, 10047, 10072, 10097, 10122, 10147, 10172, 10197, 10222, 10245, 10257, 10261, 10273, 10296, 10300, 10323, 10345, 10349, 10374, 10399, 10424, 10449, 10474, 10497, 10509, 10513, 10525, 10548, 10552, 10575, 10579, 10589, 10600, 10604, 10629, 10654, 10679, 10704, 10727, 10739, 10743, 10755, 10778, 10782, 10805, 10809, 10819, 10830, 10834, 10859, 10884, 10909, 10934, 10959, 10982, 10994, 10998, 11010, 11033, 11037, 11060, 11064, 11074, 11085, 11089, 11114, 11139, 11162, 11174, 11178, 11190, 11213, 11217, 11240, 11244, 11254, 11265, 11269, 11294, 11319, 11344, 11369, 11392, 11404, 11408, 11420, 11443, 11447, 11470, 11474, 11484, 11495, 11499, 11524, 11549, 11574, 11599, 11622, 11634, 11638, 11650, 11677, 11681, 11708, 11732, 11756, 11780, 11804, 11815, 11839, 11863, 11867, 11872, 11893, 11914, 11935, 11956, 11975, 11983, 11988, 11996, 12019, 12024, 12047, 12067, 12087, 12107, 12127, 12134, 12154, 12174, 12179, 12200, 12221, 12242, 12263, 12282, 12290, 12295, 12303, 12322, 12327, 12346, 12351, 12357, 12368, 12379, 12384, 12395, 12416, 12437, 12458, 12479, 12500, 12519, 12527, 12532, 12540, 12559, 12564, 12583, 12588, 12594, 12605, 12617, 12629, 12641, 12647, 12658, 12671, 12677, 12684, 12690, 12697, 12703, 12710, 12717, 12722, 12729, 12736, 12741, 12748, 12753, 12766, 12779, 12791, 12803, 12815, 12827, 12833, 12843, 12856, 12869, 12882, 12888, 12895, 12902, 12907, 12912, 12917, 12938, 12959, 12978, 12986, 12991, 12999, 13018, 13023, 13042, 13047, 13053, 13064, 13075, 13080, 13091, 13096, 13117, 13138, 13159, 13180, 13199, 13207, 13212, 13220, 13239, 13244, 13263, 13268, 13274, 13279, 13300, 13321, 13342, 13363, 13382, 13390, 13395, 13403, 13426, 13431, 13454, 13474, 13494, 13514, 13534, 13541, 13561, 13581, 13586, 13591, 13612, 13633, 13654, 13675, 13696, 13717, 13738, 13757, 13765, 13770, 13778, 13797, 13802, 13821, 13839, 13844, 13860, 13877, 13894, 13911, 13922, 13938, 13956, 13967, 13979, 13990, 14002, 14013, 14025, 14037, 14047, 14058, 14070, 14080, 14092, 14102, 14120, 14138, 14155, 14172, 14189, 14206, 14217, 14232, 14250, 14268, 14286, 14297, 14309, 14321, 14331, 14341, 14346, 14371, 14396, 14421, 14446, 14471, 14496, 14521, 14546, 14569, 14581, 14586, 14598, 14621, 14626, 14649, 14671, 14676, 14701, 14726, 14751, 14776, 14801, 14824, 14836, 14841, 14853, 14876, 14881, 14904, 14909, 14919, 14924, 14949, 14974, 14999, 15024, 15047, 15059, 15064, 15076, 15099, 15104, 15127, 15132, 15142, 15147, 15172, 15197, 15222, 15247, 15272, 15295, 15307, 15312, 15324, 15347, 15352, 15375, 15380, 15390, 15395, 15420, 15445, 15468, 15480, 15485, 15497, 15520, 15525, 15548, 15553, 15578, 15603, 15628, 15653, 15676, 15688, 15693, 15705, 15728, 15733, 15756, 15761, 15771, 15776, 15801, 15826, 15851, 15876, 15899, 15911, 15916, 15928, 15955, 15960, 15987, 16011, 16035, 16059, 16083, 16094, 16118, 16142, 16147, 16151, 16176, 16201, 16226, 16251, 16274, 16286, 16290, 16302, 16325, 16329, 16352, 16356, 16366, 16377, 16381, 16406, 16431, 16456, 16481, 16504, 16516, 16520, 16532, 16559, 16563, 16590, 16614, 16638, 16662, 16686, 16697, 16721, 16745, 16749, 16753, 16778, 16803, 16826, 16838, 16842, 16854, 16877, 16881, 16904, 16908, 16918, 16929, 16933, 16958, 16983, 17008, 17033, 17056, 17068, 17072, 17084, 17107, 17111, 17134, 17138, 17148, 17159, 17163, 17188, 17213, 17238, 17263, 17286, 17298, 17302, 17314, 17341, 17345, 17372, 17396, 17420, 17444, 17468, 17479, 17503, 17527, 17531, 17536, 17557, 17578, 17599, 17620, 17639, 17647, 17652, 17660, 17679, 17684, 17703, 17708, 17729, 17750, 17771, 17792, 17813, 17834, 17855, 17874, 17882, 17887, 17895, 17914, 17919, 17938, 17956, 17961, 17977, 17994, 18011, 18028, 18039, 18055, 18073, 18084, 18096, 18107, 18119, 18130, 18142, 18154, 18164, 18175, 18187, 18197, 18209, 18219, 18237, 18255, 18272, 18289, 18306, 18323, 18334, 18349, 18367, 18385, 18403, 18414, 18426, 18438, 18448, 18458, 18463, 18488, 18513, 18538, 18563, 18588, 18613, 18638, 18663, 18686, 18698, 18703, 18715, 18738, 18743, 18766, 18788, 18793, 18818, 18843, 18868, 18893, 18918, 18941, 18953, 18958, 18970, 18993, 18998, 19021, 19026, 19051, 19076, 19101, 19126, 19149, 19161, 19166, 19178, 19201, 19206, 19229, 19234, 19244, 19249, 19274, 19299, 19324, 19349, 19374, 19397, 19409, 19414, 19426, 19449, 19454, 19477, 19482, 19492, 19497, 19522, 19547, 19570, 19582, 19587, 19599, 19622, 19627, 19650, 19655, 19665, 19670, 19695, 19720, 19745, 19770, 19793, 19805, 19810, 19822, 19845, 19850, 19873, 19878, 19888, 19893, 19918, 19943, 19968, 19993, 20016, 20028, 20033, 20045, 20072, 20077, 20104, 20128, 20152, 20176, 20200, 20211, 20235, 20259, 20264, 20268, 20293, 20318, 20343, 20368, 20391, 20403, 20407, 20419, 20442, 20446, 20469, 20473, 20483, 20487, 20512, 20537, 20562, 20587, 20612, 20635, 20647, 20651, 20663, 20686, 20690, 20713, 20717, 20727, 20731, 20756, 20781, 20804, 20816, 20820, 20832, 20855, 20859, 20882, 20886, 20896, 20907, 20911, 20936, 20961, 20986, 21011, 21034, 21046, 21050, 21062, 21085, 21089, 21112, 21116, 21126, 21130, 21155, 21180, 21205, 21230, 21253, 21265, 21269, 21281, 21308, 21312, 21339, 21363, 21387, 21411, 21435, 21446, 21470, 21494, 21498, 21502, 21522, 21542, 21562, 21582, 21600, 21607, 21611, 21618, 21637, 21641, 21660, 21664, 21670, 21679, 21683, 21703, 21723, 21743, 21763, 21783, 21803, 21823, 21841, 21848, 21852, 21859, 21878, 21882, 21901, 21918, 21922, 21942, 21962, 21982, 22002, 22022, 22040, 22047, 22051, 22058, 22077, 22081, 22100, 22104, 22110, 22119, 22128, 22133, 22139, 22150, 22154, 22165, 22169, 22180, 22216, 22220, 22256, 22279, 22291, 22295, 22307, 22330, 22334, 22357, 22379, 22390, 22394, 22410, 22427, 22444, 22461, 22472, 22488, 22506, 22517, 22529, 22540, 22552, 22563, 22575, 22587, 22597, 22608, 22620, 22630, 22642, 22652, 22670, 22688, 22705, 22722, 22739, 22756, 22767, 22782, 22800, 22818, 22836, 22847, 22859, 22871, 22881, 22891, 22895, 22920, 22945, 22970, 22995, 23020, 23045, 23070, 23095, 23118, 23130, 23134, 23146, 23169, 23173, 23196, 23218, 23222, 23247, 23272, 23297, 23322, 23347, 23370, 23382, 23386, 23398, 23421, 23425, 23448, 23452, 23462, 23473, 23477, 23502, 23527, 23552, 23577, 23600, 23612, 23616, 23628, 23651, 23655, 23678, 23682, 23707, 23732, 23757, 23782, 23807, 23830, 23842, 23846, 23858, 23881, 23885, 23908, 23912, 23937, 23962, 23985, 23997, 24001, 24013, 24036, 24040, 24063, 24067, 24077, 24088, 24092, 24117, 24142, 24167, 24192, 24215, 24227, 24231, 24243, 24266, 24270, 24293, 24297, 24322, 24347, 24372, 24397, 24420, 24432, 24436, 24448, 24475, 24479, 24506, 24530, 24554, 24578, 24602, 24613, 24637, 24661, 24665, 24669, 24689, 24709, 24727, 24734, 24738, 24745, 24764, 24768, 24787, 24791, 24797, 24806, 24815, 24820, 24826, 24830, 24835, 24840, 24845, 24850, 24855, 24860, 24864, 24869, 24872, 24875, 24878, 24883, 24888, 24893, 24898, 24929, 24934, 24939, 24944, 24949, 24980, 24985, 24990, 24995, 25000, 25031, 25036, 25041, 25046, 25051, 25082, 25087, 25092, 25097, 25101, 25132, 25137, 25142, 25147, 25152, 25183, 25188, 25193, 25224, 25230, 25261, 25292, 25297, 25302, 25307, 25312, 25317, 25348, 25353, 25358, 25389, 25394, 25399, 25404, 25408, 25414, 25420, 25426, 25432, 25438, 25444, 25476, 25482, 25488, 25520, 25526, 25532, 25538, 25570, 25576, 25582, 25588, 25619, 25650, 25655, 25660, 25665, 25670, 25675, 25706, 25711, 25716, 25747, 25752, 25757, 25762, 25793, 25798, 25803, 25808, 25839, 25844, 25849, 25854, 25859, 25864, 25869, 25874, 25879, 25910, 25941, 25946, 25951, 25982, 25987, 25992, 25997, 26028, 26033, 26038, 26043, 26074, 26079, 26084, 26089, 26120, 26125, 26130, 26135, 26141, 26147, 26153, 26159, 26165, 26197, 26203, 26209, 26241, 26247, 26253, 26259, 26291, 26297, 26303, 26309, 26341, 26347, 26353, 26359, 26390, 26422, 26428, 26434, 26466, 26472, 26478, 26484, 26515, 26546, 26551, 26556, 26561, 26566, 26571, 26602, 26607, 26612, 26643, 26648, 26653, 26658, 26689, 26694, 26699, 26704, 26735, 26740, 26745, 26750, 26781, 26786, 26791, 26796, 26827, 26832, 26837, 26842, 26873, 26878, 26883, 26914, 26946, 26952, 26958, 26990, 26996, 27002, 27008, 27040, 27046, 27052, 27058, 27090, 27096, 27102, 27108, 27140, 27172, 27178, 27184, 27190, 27222, 27228, 27234, 27266, 27298, 27304, 27310, 27342, 27374, 27380, 27386, 27418, 27424, 27430, 27436, 27468, 27474, 27480, 27486, 27518, 27524, 27530, 27536, 27568, 27574, 27580, 27612, 27618, 27624, 27630, 27662, 27668, 27674, 27706, 27737, 27742, 27747, 27752, 27783, 27788, 27793, 27824, 27855, 27860, 27865, 27870, 27901, 27906, 27911, 27916, 27947, 27952, 27957, 27988, 28020, 28026, 28032, 28064, 28070, 28076, 28108, 28140, 28146, 28152, 28184, 28190, 28196, 28228, 28234, 28240, 28246, 28278, 28284, 28290, 28296, 28328, 28334, 28340, 28346, 28378, 28384, 28390, 28396, 28428, 28434, 28440, 28472, 28503, 28508, 28513, 28518, 28549, 28554, 28559, 28564, 28595, 28600, 28605, 28610, 28641, 28646, 28651, 28656, 28687, 28692, 28697, 28728, 28759, 28764, 28769, 28774, 28805, 28810, 28815, 28846, 28851, 28856, 28861, 28867, 28898, 28929, 28934, 28939, 28944, 28949, 28980, 28985, 28990, 29021, 29026, 29031, 29036, 29067, 29072, 29077, 29108, 29113, 29118, 29149, 29154, 29159, 29164, 29195, 29200, 29205, 29236, 29241, 29246, 29277, 29308, 29313, 29318, 29323, 29329]; _tsip_machine_parser_header_WWW_Authenticate_indicies = [0, 2, 0, 2, 1, 3, 3, 1, 4, 4, 1, 5, 5, 1, 6, 6, 1, 7, 1, 8, 8, 1, 9, 9, 1, 10, 10, 1, 11, 11, 1, 12, 12, 1, 13, 13, 1, 14, 14, 1, 15, 15, 1, 16, 16, 1, 17, 17, 1, 18, 18, 1, 19, 19, 1, 19, 19, 20, 1, 22, 23, 22, 24, 25, 24, 25, 21, 1, 26, 21, 1, 27, 26, 21, 1, 22, 28, 22, 24, 25, 24, 25, 21, 1, 29, 26, 21, 1, 30, 26, 30, 24, 25, 24, 25, 21, 1, 26, 31, 31, 21, 1, 26, 32, 32, 21, 1, 26, 33, 33, 21, 1, 26, 34, 34, 21, 1, 35, 36, 35, 21, 1, 37, 38, 37, 39, 39, 39, 21, 21, 40, 41, 42, 43, 44, 45, 46, 40, 41, 42, 43, 44, 45, 46, 39, 21, 39, 21, 39, 21, 39, 21, 1, 47, 26, 21, 1, 48, 26, 48, 39, 39, 39, 21, 21, 40, 41, 42, 43, 44, 45, 46, 40, 41, 42, 43, 44, 45, 46, 39, 21, 39, 21, 39, 21, 39, 21, 1, 49, 50, 49, 51, 51, 51, 52, 21, 53, 51, 21, 51, 21, 51, 21, 51, 21, 1, 54, 55, 54, 56, 53, 21, 1, 57, 26, 21, 1, 58, 26, 58, 56, 53, 21, 1, 56, 59, 56, 39, 39, 39, 21, 21, 40, 60, 42, 43, 61, 45, 46, 40, 60, 42, 43, 61, 45, 46, 39, 21, 39, 21, 39, 21, 39, 21, 1, 62, 26, 21, 1, 63, 26, 63, 39, 39, 39, 21, 21, 40, 60, 42, 43, 61, 45, 46, 40, 60, 42, 43, 61, 45, 46, 39, 21, 39, 21, 39, 21, 39, 21, 1, 49, 50, 49, 51, 51, 51, 52, 21, 53, 64, 64, 51, 21, 51, 21, 51, 21, 51, 21, 1, 65, 26, 21, 1, 49, 50, 49, 51, 51, 51, 52, 21, 53, 66, 66, 51, 21, 51, 21, 51, 21, 51, 21, 1, 53, 67, 53, 68, 69, 68, 68, 21, 21, 70, 68, 21, 68, 21, 68, 21, 68, 21, 1, 71, 26, 21, 1, 72, 73, 72, 68, 69, 68, 68, 21, 21, 70, 68, 21, 68, 21, 68, 21, 68, 21, 1, 74, 26, 21, 1, 75, 26, 75, 69, 21, 1, 69, 76, 77, 78, 21, 21, 69, 21, 1, 79, 26, 21, 1, 80, 81, 80, 52, 21, 1, 82, 83, 82, 56, 21, 1, 84, 26, 21, 1, 85, 26, 85, 56, 21, 1, 86, 26, 21, 1, 49, 50, 49, 51, 51, 51, 52, 21, 53, 87, 87, 51, 21, 51, 21, 51, 21, 51, 21, 1, 49, 50, 49, 51, 51, 51, 52, 21, 53, 88, 88, 51, 21, 51, 21, 51, 21, 51, 21, 1, 49, 50, 49, 51, 51, 51, 52, 21, 53, 89, 89, 51, 21, 51, 21, 51, 21, 51, 21, 1, 49, 50, 49, 51, 51, 51, 52, 21, 53, 90, 90, 51, 21, 51, 21, 51, 21, 51, 21, 1, 91, 92, 91, 51, 51, 51, 52, 21, 93, 51, 21, 51, 21, 51, 21, 51, 21, 1, 94, 95, 94, 56, 93, 21, 1, 96, 26, 21, 1, 97, 26, 97, 56, 93, 21, 1, 98, 99, 98, 68, 100, 68, 68, 21, 21, 70, 68, 21, 68, 21, 68, 21, 68, 21, 1, 101, 26, 21, 1, 102, 103, 102, 68, 100, 68, 68, 21, 21, 70, 68, 21, 68, 21, 68, 21, 68, 21, 1, 104, 26, 21, 1, 105, 26, 105, 106, 21, 1, 106, 107, 108, 109, 21, 21, 106, 21, 1, 110, 26, 21, 1, 111, 112, 111, 113, 21, 1, 21, 26, 106, 21, 1, 80, 81, 80, 68, 68, 68, 52, 21, 68, 21, 68, 21, 68, 21, 68, 21, 1, 26, 115, 21, 114, 21, 114, 21, 114, 21, 1, 26, 117, 77, 21, 116, 21, 116, 21, 116, 21, 1, 26, 117, 77, 21, 118, 21, 118, 21, 118, 21, 1, 26, 117, 77, 21, 119, 21, 119, 21, 119, 21, 1, 26, 117, 77, 21, 1, 26, 121, 21, 120, 21, 114, 21, 114, 21, 1, 26, 122, 117, 77, 21, 123, 21, 116, 21, 116, 21, 1, 26, 21, 124, 21, 1, 26, 125, 21, 126, 21, 1, 26, 21, 127, 21, 1, 26, 128, 21, 129, 21, 1, 26, 21, 130, 21, 1, 26, 77, 21, 131, 21, 1, 26, 77, 21, 132, 21, 1, 26, 77, 21, 1, 26, 128, 21, 133, 21, 1, 26, 128, 21, 1, 26, 125, 21, 134, 21, 1, 26, 125, 21, 1, 26, 122, 117, 77, 21, 135, 21, 118, 21, 118, 21, 1, 26, 122, 117, 77, 21, 119, 21, 119, 21, 119, 21, 1, 26, 137, 77, 21, 136, 21, 136, 21, 136, 21, 1, 26, 139, 77, 21, 138, 21, 138, 21, 138, 21, 1, 26, 139, 77, 21, 140, 21, 140, 21, 140, 21, 1, 26, 139, 77, 21, 141, 21, 141, 21, 141, 21, 1, 26, 139, 77, 21, 1, 26, 21, 142, 21, 136, 21, 136, 21, 1, 26, 122, 139, 77, 21, 143, 21, 138, 21, 138, 21, 1, 26, 122, 139, 77, 21, 144, 21, 140, 21, 140, 21, 1, 26, 122, 139, 77, 21, 141, 21, 141, 21, 141, 21, 1, 26, 21, 145, 21, 1, 26, 122, 21, 146, 21, 1, 26, 122, 21, 147, 21, 1, 26, 122, 21, 1, 26, 121, 21, 1, 148, 26, 21, 1, 49, 50, 49, 51, 51, 51, 52, 21, 53, 149, 149, 51, 21, 51, 21, 51, 21, 51, 21, 1, 49, 50, 49, 51, 51, 51, 52, 21, 53, 150, 150, 51, 21, 51, 21, 51, 21, 51, 21, 1, 49, 50, 49, 51, 51, 51, 52, 21, 53, 151, 151, 51, 21, 51, 21, 51, 21, 51, 21, 1, 49, 50, 49, 51, 51, 51, 52, 21, 53, 152, 152, 51, 21, 51, 21, 51, 21, 51, 21, 1, 49, 50, 49, 51, 51, 51, 52, 21, 53, 153, 153, 51, 21, 51, 21, 51, 21, 51, 21, 1, 154, 155, 154, 51, 51, 51, 52, 21, 156, 51, 21, 51, 21, 51, 21, 51, 21, 1, 157, 158, 157, 56, 156, 21, 1, 159, 26, 21, 1, 160, 26, 160, 56, 156, 21, 1, 161, 162, 161, 68, 163, 68, 68, 21, 21, 70, 68, 21, 68, 21, 68, 21, 68, 21, 1, 164, 26, 21, 1, 165, 166, 165, 68, 163, 68, 68, 21, 21, 70, 68, 21, 68, 21, 68, 21, 68, 21, 1, 167, 26, 21, 1, 168, 26, 168, 169, 21, 1, 169, 170, 171, 172, 21, 21, 169, 21, 1, 173, 26, 21, 1, 174, 175, 174, 176, 21, 1, 21, 26, 169, 21, 1, 177, 26, 21, 1, 49, 50, 49, 51, 51, 51, 52, 21, 53, 178, 178, 51, 21, 51, 21, 51, 21, 51, 21, 1, 49, 50, 49, 51, 51, 51, 52, 21, 53, 179, 179, 51, 21, 51, 21, 51, 21, 51, 21, 1, 180, 181, 180, 51, 51, 51, 52, 21, 182, 51, 21, 51, 21, 51, 21, 51, 21, 1, 183, 184, 183, 56, 182, 21, 1, 185, 26, 21, 1, 186, 26, 186, 56, 182, 21, 1, 182, 187, 182, 68, 188, 68, 68, 21, 21, 70, 68, 21, 68, 21, 68, 21, 68, 21, 1, 189, 26, 21, 1, 190, 191, 190, 68, 188, 68, 68, 21, 21, 70, 68, 21, 68, 21, 68, 21, 68, 21, 1, 192, 26, 21, 1, 193, 26, 193, 188, 21, 1, 195, 196, 197, 198, 194, 194, 195, 194, 1, 200, 201, 199, 1, 202, 200, 201, 199, 1, 203, 204, 203, 56, 21, 1, 205, 26, 21, 1, 206, 207, 206, 56, 21, 1, 49, 50, 49, 51, 51, 51, 52, 21, 53, 208, 208, 51, 21, 51, 21, 51, 21, 51, 21, 1, 49, 50, 49, 51, 51, 51, 52, 21, 53, 209, 209, 51, 21, 51, 21, 51, 21, 51, 21, 1, 49, 50, 49, 51, 51, 51, 52, 21, 53, 210, 210, 51, 21, 51, 21, 51, 21, 51, 21, 1, 49, 50, 49, 51, 51, 51, 52, 21, 53, 211, 211, 51, 21, 51, 21, 51, 21, 51, 21, 1, 212, 213, 212, 51, 51, 51, 52, 21, 214, 51, 21, 51, 21, 51, 21, 51, 21, 1, 215, 216, 215, 56, 214, 21, 1, 217, 26, 21, 1, 218, 26, 218, 56, 214, 21, 1, 219, 220, 219, 68, 221, 68, 68, 21, 21, 70, 68, 21, 68, 21, 68, 21, 68, 21, 1, 222, 26, 21, 1, 223, 224, 223, 68, 221, 68, 68, 21, 21, 70, 68, 21, 68, 21, 68, 21, 68, 21, 1, 225, 26, 21, 1, 226, 26, 226, 227, 21, 1, 227, 228, 229, 230, 21, 21, 227, 21, 1, 231, 26, 21, 1, 232, 233, 232, 234, 21, 1, 21, 26, 227, 21, 1, 235, 26, 21, 1, 49, 50, 49, 51, 51, 51, 52, 21, 53, 236, 236, 51, 21, 51, 21, 51, 21, 51, 21, 1, 49, 50, 49, 51, 51, 51, 52, 21, 53, 237, 237, 51, 21, 51, 21, 51, 21, 51, 21, 1, 49, 50, 49, 51, 51, 51, 52, 21, 53, 238, 238, 51, 21, 51, 21, 51, 21, 51, 21, 1, 49, 50, 49, 51, 51, 51, 52, 21, 53, 239, 239, 51, 21, 51, 21, 51, 21, 51, 21, 1, 240, 241, 240, 51, 51, 51, 52, 21, 242, 51, 21, 51, 21, 51, 21, 51, 21, 1, 243, 244, 243, 56, 242, 21, 1, 245, 26, 21, 1, 246, 26, 246, 56, 242, 21, 1, 242, 247, 242, 68, 69, 68, 68, 21, 21, 248, 249, 70, 248, 249, 68, 21, 68, 21, 68, 21, 68, 21, 1, 250, 26, 21, 1, 251, 73, 251, 68, 69, 68, 68, 21, 21, 248, 249, 70, 248, 249, 68, 21, 68, 21, 68, 21, 68, 21, 1, 80, 81, 80, 68, 68, 68, 52, 21, 252, 252, 68, 21, 68, 21, 68, 21, 68, 21, 1, 80, 81, 80, 68, 68, 68, 52, 21, 253, 253, 68, 21, 68, 21, 68, 21, 68, 21, 1, 80, 81, 80, 68, 68, 68, 52, 21, 254, 254, 68, 21, 68, 21, 68, 21, 68, 21, 1, 80, 81, 80, 68, 68, 68, 52, 21, 255, 255, 68, 21, 68, 21, 68, 21, 68, 21, 1, 256, 257, 256, 258, 21, 1, 80, 81, 80, 68, 68, 68, 52, 21, 259, 259, 68, 21, 68, 21, 68, 21, 68, 21, 1, 80, 81, 80, 68, 68, 68, 52, 21, 254, 254, 68, 21, 68, 21, 68, 21, 68, 21, 1, 260, 26, 21, 1, 261, 262, 201, 263, 199, 199, 261, 199, 1, 264, 200, 201, 199, 1, 199, 200, 265, 261, 199, 1, 266, 267, 266, 77, 268, 78, 21, 21, 69, 21, 1, 269, 26, 21, 1, 270, 271, 270, 77, 268, 78, 21, 21, 69, 21, 1, 272, 26, 21, 1, 273, 76, 273, 77, 268, 78, 21, 21, 69, 21, 1, 268, 274, 268, 275, 77, 275, 275, 69, 69, 276, 277, 278, 279, 280, 281, 282, 78, 276, 277, 278, 279, 280, 281, 282, 275, 21, 21, 69, 275, 69, 275, 69, 275, 69, 21, 1, 283, 26, 21, 1, 284, 76, 284, 275, 77, 275, 275, 69, 69, 276, 277, 278, 279, 280, 281, 282, 78, 276, 277, 278, 279, 280, 281, 282, 275, 21, 21, 69, 275, 69, 275, 69, 275, 69, 21, 1, 285, 286, 285, 287, 77, 287, 287, 288, 69, 289, 78, 287, 21, 21, 69, 287, 69, 287, 69, 287, 69, 21, 1, 290, 291, 290, 77, 268, 289, 78, 21, 21, 69, 21, 1, 292, 26, 21, 1, 293, 76, 293, 77, 268, 289, 78, 21, 21, 69, 21, 1, 289, 294, 289, 295, 296, 295, 295, 69, 69, 297, 78, 295, 21, 21, 69, 295, 69, 295, 69, 295, 69, 21, 1, 298, 26, 21, 1, 299, 300, 299, 295, 296, 295, 295, 69, 69, 297, 78, 295, 21, 21, 69, 295, 69, 295, 69, 295, 69, 21, 1, 301, 26, 21, 1, 302, 76, 302, 296, 78, 21, 21, 69, 21, 1, 303, 304, 303, 77, 288, 78, 21, 21, 69, 21, 1, 305, 306, 305, 77, 268, 78, 21, 21, 69, 21, 1, 307, 26, 21, 1, 21, 26, 69, 21, 1, 303, 304, 303, 295, 77, 295, 295, 288, 69, 78, 295, 21, 21, 69, 295, 69, 295, 69, 295, 69, 21, 1, 69, 76, 77, 309, 78, 21, 21, 69, 308, 69, 308, 69, 308, 69, 21, 1, 69, 76, 77, 311, 78, 296, 21, 21, 69, 310, 69, 310, 69, 310, 69, 21, 1, 69, 76, 77, 311, 78, 296, 21, 21, 69, 312, 69, 312, 69, 312, 69, 21, 1, 69, 76, 77, 311, 78, 296, 21, 21, 69, 313, 69, 313, 69, 313, 69, 21, 1, 69, 76, 77, 311, 78, 296, 21, 21, 69, 21, 1, 69, 76, 77, 315, 78, 21, 21, 69, 314, 69, 308, 69, 308, 69, 21, 1, 69, 76, 77, 316, 311, 78, 296, 21, 21, 69, 317, 69, 310, 69, 310, 69, 21, 1, 69, 76, 77, 78, 21, 21, 69, 318, 69, 21, 1, 69, 76, 77, 319, 78, 21, 21, 69, 320, 69, 21, 1, 69, 76, 77, 78, 21, 21, 69, 321, 69, 21, 1, 69, 76, 77, 322, 78, 21, 21, 69, 323, 69, 21, 1, 69, 76, 77, 78, 21, 21, 69, 324, 69, 21, 1, 69, 76, 77, 78, 296, 21, 21, 69, 325, 69, 21, 1, 69, 76, 77, 78, 296, 21, 21, 69, 326, 69, 21, 1, 69, 76, 77, 78, 296, 21, 21, 69, 21, 1, 69, 76, 77, 322, 78, 21, 21, 69, 327, 69, 21, 1, 69, 76, 77, 322, 78, 21, 21, 69, 21, 1, 69, 76, 77, 319, 78, 21, 21, 69, 328, 69, 21, 1, 69, 76, 77, 319, 78, 21, 21, 69, 21, 1, 69, 76, 77, 316, 311, 78, 296, 21, 21, 69, 329, 69, 312, 69, 312, 69, 21, 1, 69, 76, 77, 316, 311, 78, 296, 21, 21, 69, 313, 69, 313, 69, 313, 69, 21, 1, 69, 76, 77, 331, 78, 296, 21, 21, 69, 330, 69, 330, 69, 330, 69, 21, 1, 69, 76, 77, 333, 78, 296, 21, 21, 69, 332, 69, 332, 69, 332, 69, 21, 1, 69, 76, 77, 333, 78, 296, 21, 21, 69, 334, 69, 334, 69, 334, 69, 21, 1, 69, 76, 77, 333, 78, 296, 21, 21, 69, 335, 69, 335, 69, 335, 69, 21, 1, 69, 76, 77, 333, 78, 296, 21, 21, 69, 21, 1, 69, 76, 77, 78, 21, 21, 69, 336, 69, 330, 69, 330, 69, 21, 1, 69, 76, 77, 316, 333, 78, 296, 21, 21, 69, 337, 69, 332, 69, 332, 69, 21, 1, 69, 76, 77, 316, 333, 78, 296, 21, 21, 69, 338, 69, 334, 69, 334, 69, 21, 1, 69, 76, 77, 316, 333, 78, 296, 21, 21, 69, 335, 69, 335, 69, 335, 69, 21, 1, 69, 76, 77, 78, 21, 21, 69, 339, 69, 21, 1, 69, 76, 77, 316, 78, 21, 21, 69, 340, 69, 21, 1, 69, 76, 77, 316, 78, 21, 21, 69, 341, 69, 21, 1, 69, 76, 77, 316, 78, 21, 21, 69, 21, 1, 69, 76, 77, 315, 78, 21, 21, 69, 21, 1, 342, 26, 21, 1, 285, 286, 285, 287, 77, 287, 287, 288, 69, 289, 343, 78, 343, 287, 21, 21, 69, 287, 69, 287, 69, 287, 69, 21, 1, 285, 286, 285, 287, 77, 287, 287, 288, 69, 289, 344, 78, 344, 287, 21, 21, 69, 287, 69, 287, 69, 287, 69, 21, 1, 285, 286, 285, 287, 77, 287, 287, 288, 69, 289, 345, 78, 345, 287, 21, 21, 69, 287, 69, 287, 69, 287, 69, 21, 1, 285, 286, 285, 287, 77, 287, 287, 288, 69, 289, 346, 78, 346, 287, 21, 21, 69, 287, 69, 287, 69, 287, 69, 21, 1, 285, 286, 285, 287, 77, 287, 287, 288, 69, 289, 347, 78, 347, 287, 21, 21, 69, 287, 69, 287, 69, 287, 69, 21, 1, 285, 286, 285, 287, 77, 287, 287, 288, 69, 289, 348, 78, 348, 287, 21, 21, 69, 287, 69, 287, 69, 287, 69, 21, 1, 285, 286, 285, 287, 77, 287, 287, 288, 69, 289, 349, 78, 349, 287, 21, 21, 69, 287, 69, 287, 69, 287, 69, 21, 1, 285, 286, 285, 287, 77, 287, 287, 288, 69, 289, 350, 78, 350, 287, 21, 21, 69, 287, 69, 287, 69, 287, 69, 21, 1, 351, 352, 351, 287, 77, 287, 287, 288, 69, 353, 78, 287, 21, 21, 69, 287, 69, 287, 69, 287, 69, 21, 1, 354, 355, 354, 77, 268, 353, 78, 21, 21, 69, 21, 1, 356, 26, 21, 1, 357, 76, 357, 77, 268, 353, 78, 21, 21, 69, 21, 1, 353, 358, 353, 359, 296, 359, 359, 69, 69, 297, 78, 359, 21, 21, 69, 359, 69, 359, 69, 359, 69, 21, 1, 360, 26, 21, 1, 361, 300, 361, 359, 296, 359, 359, 69, 69, 297, 78, 359, 21, 21, 69, 359, 69, 359, 69, 359, 69, 21, 1, 362, 363, 362, 364, 77, 364, 364, 365, 69, 78, 364, 21, 21, 69, 364, 69, 364, 69, 364, 69, 21, 1, 366, 26, 21, 1, 285, 286, 285, 287, 77, 287, 287, 288, 69, 289, 367, 78, 367, 287, 21, 21, 69, 287, 69, 287, 69, 287, 69, 21, 1, 285, 286, 285, 287, 77, 287, 287, 288, 69, 289, 368, 78, 368, 287, 21, 21, 69, 287, 69, 287, 69, 287, 69, 21, 1, 285, 286, 285, 287, 77, 287, 287, 288, 69, 289, 369, 78, 369, 287, 21, 21, 69, 287, 69, 287, 69, 287, 69, 21, 1, 285, 286, 285, 287, 77, 287, 287, 288, 69, 289, 370, 78, 370, 287, 21, 21, 69, 287, 69, 287, 69, 287, 69, 21, 1, 285, 286, 285, 287, 77, 287, 287, 288, 69, 289, 371, 78, 371, 287, 21, 21, 69, 287, 69, 287, 69, 287, 69, 21, 1, 372, 373, 372, 287, 77, 287, 287, 288, 69, 374, 78, 287, 21, 21, 69, 287, 69, 287, 69, 287, 69, 21, 1, 375, 376, 375, 77, 268, 374, 78, 21, 21, 69, 21, 1, 377, 26, 21, 1, 378, 76, 378, 77, 268, 374, 78, 21, 21, 69, 21, 1, 374, 379, 374, 295, 380, 295, 295, 69, 69, 297, 78, 295, 21, 21, 69, 295, 69, 295, 69, 295, 69, 21, 1, 381, 26, 21, 1, 382, 383, 382, 295, 380, 295, 295, 69, 69, 297, 78, 295, 21, 21, 69, 295, 69, 295, 69, 295, 69, 21, 1, 384, 26, 21, 1, 385, 76, 385, 380, 78, 21, 21, 69, 21, 1, 387, 388, 387, 390, 391, 392, 386, 386, 389, 386, 1, 394, 395, 393, 1, 396, 394, 395, 393, 1, 397, 398, 397, 395, 400, 401, 393, 393, 399, 393, 1, 402, 394, 395, 393, 1, 403, 404, 403, 395, 400, 401, 393, 393, 399, 393, 1, 405, 394, 395, 393, 1, 399, 404, 395, 401, 393, 393, 399, 393, 1, 393, 394, 406, 399, 393, 1, 400, 407, 400, 408, 395, 408, 408, 399, 399, 409, 410, 411, 412, 413, 414, 415, 401, 409, 410, 411, 412, 413, 414, 415, 408, 393, 393, 399, 408, 399, 408, 399, 408, 399, 393, 1, 416, 394, 395, 393, 1, 417, 404, 417, 408, 395, 408, 408, 399, 399, 409, 410, 411, 412, 413, 414, 415, 401, 409, 410, 411, 412, 413, 414, 415, 408, 393, 393, 399, 408, 399, 408, 399, 408, 399, 393, 1, 418, 419, 418, 420, 395, 420, 420, 421, 399, 422, 401, 420, 393, 393, 399, 420, 399, 420, 399, 420, 399, 393, 1, 423, 424, 423, 395, 400, 422, 401, 393, 393, 399, 393, 1, 425, 394, 395, 393, 1, 426, 404, 426, 395, 400, 422, 401, 393, 393, 399, 393, 1, 422, 427, 422, 428, 406, 428, 428, 399, 399, 429, 401, 428, 393, 393, 399, 428, 399, 428, 399, 428, 399, 393, 1, 430, 394, 395, 393, 1, 431, 432, 431, 428, 406, 428, 428, 399, 399, 429, 401, 428, 393, 393, 399, 428, 399, 428, 399, 428, 399, 393, 1, 433, 394, 395, 393, 1, 434, 404, 434, 406, 401, 393, 393, 399, 393, 1, 435, 436, 435, 428, 395, 428, 428, 421, 399, 401, 428, 393, 393, 399, 428, 399, 428, 399, 428, 399, 393, 1, 437, 394, 395, 393, 1, 438, 439, 438, 440, 395, 440, 440, 441, 393, 442, 440, 393, 440, 393, 440, 393, 440, 393, 1, 443, 444, 443, 395, 445, 442, 393, 1, 446, 394, 395, 393, 1, 447, 394, 447, 395, 445, 442, 393, 1, 445, 448, 445, 449, 395, 449, 449, 393, 393, 450, 451, 452, 453, 454, 455, 456, 450, 451, 452, 453, 454, 455, 456, 449, 393, 449, 393, 449, 393, 449, 393, 1, 457, 394, 395, 393, 1, 458, 394, 458, 449, 395, 449, 449, 393, 393, 450, 451, 452, 453, 454, 455, 456, 450, 451, 452, 453, 454, 455, 456, 449, 393, 449, 393, 449, 393, 449, 393, 1, 438, 439, 438, 440, 395, 440, 440, 441, 393, 442, 459, 459, 440, 393, 440, 393, 440, 393, 440, 393, 1, 460, 394, 395, 393, 1, 438, 439, 438, 440, 395, 440, 440, 441, 393, 442, 461, 461, 440, 393, 440, 393, 440, 393, 440, 393, 1, 442, 462, 442, 463, 406, 463, 463, 393, 393, 464, 463, 393, 463, 393, 463, 393, 463, 393, 1, 465, 394, 395, 393, 1, 466, 467, 466, 463, 406, 463, 463, 393, 393, 464, 463, 393, 463, 393, 463, 393, 463, 393, 1, 468, 394, 395, 393, 1, 469, 394, 469, 406, 393, 1, 470, 471, 470, 463, 395, 463, 463, 441, 393, 463, 393, 463, 393, 463, 393, 463, 393, 1, 472, 473, 472, 395, 445, 393, 1, 474, 394, 395, 393, 1, 475, 394, 475, 395, 445, 393, 1, 476, 394, 395, 393, 1, 438, 439, 438, 440, 395, 440, 440, 441, 393, 442, 477, 477, 440, 393, 440, 393, 440, 393, 440, 393, 1, 438, 439, 438, 440, 395, 440, 440, 441, 393, 442, 478, 478, 440, 393, 440, 393, 440, 393, 440, 393, 1, 438, 439, 438, 440, 395, 440, 440, 441, 393, 442, 479, 479, 440, 393, 440, 393, 440, 393, 440, 393, 1, 438, 439, 438, 440, 395, 440, 440, 441, 393, 442, 480, 480, 440, 393, 440, 393, 440, 393, 440, 393, 1, 481, 482, 481, 440, 395, 440, 440, 441, 393, 483, 440, 393, 440, 393, 440, 393, 440, 393, 1, 484, 485, 484, 395, 445, 483, 393, 1, 486, 394, 395, 393, 1, 487, 394, 487, 395, 445, 483, 393, 1, 488, 489, 488, 463, 490, 463, 463, 393, 393, 464, 463, 393, 463, 393, 463, 393, 463, 393, 1, 491, 394, 395, 393, 1, 492, 493, 492, 463, 490, 463, 463, 393, 393, 464, 463, 393, 463, 393, 463, 393, 463, 393, 1, 494, 394, 395, 393, 1, 495, 394, 495, 496, 393, 1, 497, 498, 497, 108, 499, 109, 21, 21, 106, 21, 1, 500, 26, 21, 1, 501, 502, 501, 108, 499, 109, 21, 21, 106, 21, 1, 503, 26, 21, 1, 504, 107, 504, 108, 499, 109, 21, 21, 106, 21, 1, 499, 505, 499, 506, 108, 506, 506, 106, 106, 507, 508, 509, 510, 511, 512, 513, 109, 507, 508, 509, 510, 511, 512, 513, 506, 21, 21, 106, 506, 106, 506, 106, 506, 106, 21, 1, 514, 26, 21, 1, 515, 107, 515, 506, 108, 506, 506, 106, 106, 507, 508, 509, 510, 511, 512, 513, 109, 507, 508, 509, 510, 511, 512, 513, 506, 21, 21, 106, 506, 106, 506, 106, 506, 106, 21, 1, 516, 517, 516, 518, 108, 518, 518, 519, 106, 520, 109, 518, 21, 21, 106, 518, 106, 518, 106, 518, 106, 21, 1, 521, 522, 521, 108, 499, 520, 109, 21, 21, 106, 21, 1, 523, 26, 21, 1, 524, 107, 524, 108, 499, 520, 109, 21, 21, 106, 21, 1, 520, 525, 520, 526, 527, 526, 526, 106, 106, 528, 109, 526, 21, 21, 106, 526, 106, 526, 106, 526, 106, 21, 1, 529, 26, 21, 1, 530, 531, 530, 526, 527, 526, 526, 106, 106, 528, 109, 526, 21, 21, 106, 526, 106, 526, 106, 526, 106, 21, 1, 532, 26, 21, 1, 533, 107, 533, 527, 109, 21, 21, 106, 21, 1, 534, 535, 534, 77, 536, 78, 21, 21, 69, 21, 1, 537, 538, 537, 526, 108, 526, 526, 519, 106, 109, 526, 21, 21, 106, 526, 106, 526, 106, 526, 106, 21, 1, 539, 540, 539, 108, 499, 109, 21, 21, 106, 21, 1, 541, 26, 21, 1, 106, 107, 108, 543, 109, 21, 21, 106, 542, 106, 542, 106, 542, 106, 21, 1, 106, 107, 108, 545, 109, 546, 21, 21, 106, 544, 106, 544, 106, 544, 106, 21, 1, 106, 107, 108, 545, 109, 546, 21, 21, 106, 547, 106, 547, 106, 547, 106, 21, 1, 106, 107, 108, 545, 109, 546, 21, 21, 106, 548, 106, 548, 106, 548, 106, 21, 1, 106, 107, 108, 545, 109, 546, 21, 21, 106, 21, 1, 106, 107, 108, 550, 109, 21, 21, 106, 549, 106, 542, 106, 542, 106, 21, 1, 106, 107, 108, 551, 545, 109, 546, 21, 21, 106, 552, 106, 544, 106, 544, 106, 21, 1, 106, 107, 108, 109, 21, 21, 106, 553, 106, 21, 1, 106, 107, 108, 554, 109, 21, 21, 106, 555, 106, 21, 1, 106, 107, 108, 109, 21, 21, 106, 556, 106, 21, 1, 106, 107, 108, 557, 109, 21, 21, 106, 558, 106, 21, 1, 106, 107, 108, 109, 21, 21, 106, 559, 106, 21, 1, 106, 107, 108, 109, 546, 21, 21, 106, 560, 106, 21, 1, 106, 107, 108, 109, 546, 21, 21, 106, 561, 106, 21, 1, 106, 107, 108, 109, 546, 21, 21, 106, 21, 1, 537, 538, 537, 108, 519, 109, 21, 21, 106, 21, 1, 106, 107, 108, 557, 109, 21, 21, 106, 562, 106, 21, 1, 106, 107, 108, 557, 109, 21, 21, 106, 21, 1, 106, 107, 108, 554, 109, 21, 21, 106, 563, 106, 21, 1, 106, 107, 108, 554, 109, 21, 21, 106, 21, 1, 106, 107, 108, 551, 545, 109, 546, 21, 21, 106, 564, 106, 547, 106, 547, 106, 21, 1, 106, 107, 108, 551, 545, 109, 546, 21, 21, 106, 548, 106, 548, 106, 548, 106, 21, 1, 106, 107, 108, 566, 109, 546, 21, 21, 106, 565, 106, 565, 106, 565, 106, 21, 1, 106, 107, 108, 568, 109, 546, 21, 21, 106, 567, 106, 567, 106, 567, 106, 21, 1, 106, 107, 108, 568, 109, 546, 21, 21, 106, 569, 106, 569, 106, 569, 106, 21, 1, 106, 107, 108, 568, 109, 546, 21, 21, 106, 570, 106, 570, 106, 570, 106, 21, 1, 106, 107, 108, 568, 109, 546, 21, 21, 106, 21, 1, 106, 107, 108, 109, 21, 21, 106, 571, 106, 565, 106, 565, 106, 21, 1, 106, 107, 108, 551, 568, 109, 546, 21, 21, 106, 572, 106, 567, 106, 567, 106, 21, 1, 106, 107, 108, 551, 568, 109, 546, 21, 21, 106, 573, 106, 569, 106, 569, 106, 21, 1, 106, 107, 108, 551, 568, 109, 546, 21, 21, 106, 570, 106, 570, 106, 570, 106, 21, 1, 106, 107, 108, 109, 21, 21, 106, 574, 106, 21, 1, 106, 107, 108, 551, 109, 21, 21, 106, 575, 106, 21, 1, 106, 107, 108, 551, 109, 21, 21, 106, 576, 106, 21, 1, 106, 107, 108, 551, 109, 21, 21, 106, 21, 1, 106, 107, 108, 550, 109, 21, 21, 106, 21, 1, 577, 26, 21, 1, 516, 517, 516, 518, 108, 518, 518, 519, 106, 520, 578, 109, 578, 518, 21, 21, 106, 518, 106, 518, 106, 518, 106, 21, 1, 516, 517, 516, 518, 108, 518, 518, 519, 106, 520, 579, 109, 579, 518, 21, 21, 106, 518, 106, 518, 106, 518, 106, 21, 1, 516, 517, 516, 518, 108, 518, 518, 519, 106, 520, 580, 109, 580, 518, 21, 21, 106, 518, 106, 518, 106, 518, 106, 21, 1, 516, 517, 516, 518, 108, 518, 518, 519, 106, 520, 581, 109, 581, 518, 21, 21, 106, 518, 106, 518, 106, 518, 106, 21, 1, 516, 517, 516, 518, 108, 518, 518, 519, 106, 520, 582, 109, 582, 518, 21, 21, 106, 518, 106, 518, 106, 518, 106, 21, 1, 516, 517, 516, 518, 108, 518, 518, 519, 106, 520, 583, 109, 583, 518, 21, 21, 106, 518, 106, 518, 106, 518, 106, 21, 1, 516, 517, 516, 518, 108, 518, 518, 519, 106, 520, 584, 109, 584, 518, 21, 21, 106, 518, 106, 518, 106, 518, 106, 21, 1, 516, 517, 516, 518, 108, 518, 518, 519, 106, 520, 585, 109, 585, 518, 21, 21, 106, 518, 106, 518, 106, 518, 106, 21, 1, 586, 587, 586, 518, 108, 518, 518, 519, 106, 588, 109, 518, 21, 21, 106, 518, 106, 518, 106, 518, 106, 21, 1, 589, 590, 589, 108, 499, 588, 109, 21, 21, 106, 21, 1, 591, 26, 21, 1, 592, 107, 592, 108, 499, 588, 109, 21, 21, 106, 21, 1, 588, 593, 588, 594, 527, 594, 594, 106, 106, 528, 109, 594, 21, 21, 106, 594, 106, 594, 106, 594, 106, 21, 1, 595, 26, 21, 1, 596, 531, 596, 594, 527, 594, 594, 106, 106, 528, 109, 594, 21, 21, 106, 594, 106, 594, 106, 594, 106, 21, 1, 597, 598, 597, 599, 108, 599, 599, 600, 106, 109, 599, 21, 21, 106, 599, 106, 599, 106, 599, 106, 21, 1, 601, 26, 21, 1, 516, 517, 516, 518, 108, 518, 518, 519, 106, 520, 602, 109, 602, 518, 21, 21, 106, 518, 106, 518, 106, 518, 106, 21, 1, 516, 517, 516, 518, 108, 518, 518, 519, 106, 520, 603, 109, 603, 518, 21, 21, 106, 518, 106, 518, 106, 518, 106, 21, 1, 516, 517, 516, 518, 108, 518, 518, 519, 106, 520, 604, 109, 604, 518, 21, 21, 106, 518, 106, 518, 106, 518, 106, 21, 1, 516, 517, 516, 518, 108, 518, 518, 519, 106, 520, 605, 109, 605, 518, 21, 21, 106, 518, 106, 518, 106, 518, 106, 21, 1, 516, 517, 516, 518, 108, 518, 518, 519, 106, 520, 606, 109, 606, 518, 21, 21, 106, 518, 106, 518, 106, 518, 106, 21, 1, 607, 608, 607, 518, 108, 518, 518, 519, 106, 609, 109, 518, 21, 21, 106, 518, 106, 518, 106, 518, 106, 21, 1, 610, 611, 610, 108, 499, 609, 109, 21, 21, 106, 21, 1, 612, 26, 21, 1, 613, 107, 613, 108, 499, 609, 109, 21, 21, 106, 21, 1, 609, 614, 609, 526, 615, 526, 526, 106, 106, 528, 109, 526, 21, 21, 106, 526, 106, 526, 106, 526, 106, 21, 1, 616, 26, 21, 1, 617, 618, 617, 526, 615, 526, 526, 106, 106, 528, 109, 526, 21, 21, 106, 526, 106, 526, 106, 526, 106, 21, 1, 619, 26, 21, 1, 620, 107, 620, 615, 109, 21, 21, 106, 21, 1, 621, 622, 621, 390, 623, 392, 386, 386, 389, 386, 1, 624, 26, 21, 1, 516, 517, 516, 518, 108, 518, 518, 519, 106, 520, 625, 109, 625, 518, 21, 21, 106, 518, 106, 518, 106, 518, 106, 21, 1, 516, 517, 516, 518, 108, 518, 518, 519, 106, 520, 626, 109, 626, 518, 21, 21, 106, 518, 106, 518, 106, 518, 106, 21, 1, 516, 517, 516, 518, 108, 518, 518, 519, 106, 520, 627, 109, 627, 518, 21, 21, 106, 518, 106, 518, 106, 518, 106, 21, 1, 516, 517, 516, 518, 108, 518, 518, 519, 106, 520, 628, 109, 628, 518, 21, 21, 106, 518, 106, 518, 106, 518, 106, 21, 1, 629, 630, 629, 518, 108, 518, 518, 519, 106, 631, 109, 518, 21, 21, 106, 518, 106, 518, 106, 518, 106, 21, 1, 632, 633, 632, 108, 499, 631, 109, 21, 21, 106, 21, 1, 634, 26, 21, 1, 635, 107, 635, 108, 499, 631, 109, 21, 21, 106, 21, 1, 636, 637, 636, 526, 638, 526, 526, 106, 106, 528, 109, 526, 21, 21, 106, 526, 106, 526, 106, 526, 106, 21, 1, 639, 26, 21, 1, 640, 641, 640, 526, 638, 526, 526, 106, 106, 528, 109, 526, 21, 21, 106, 526, 106, 526, 106, 526, 106, 21, 1, 642, 26, 21, 1, 643, 107, 643, 644, 109, 21, 21, 106, 21, 1, 645, 646, 645, 108, 647, 109, 21, 21, 106, 21, 1, 648, 26, 21, 1, 516, 517, 516, 518, 108, 518, 518, 519, 106, 520, 649, 109, 649, 518, 21, 21, 106, 518, 106, 518, 106, 518, 106, 21, 1, 516, 517, 516, 518, 108, 518, 518, 519, 106, 520, 650, 109, 650, 518, 21, 21, 106, 518, 106, 518, 106, 518, 106, 21, 1, 516, 517, 516, 518, 108, 518, 518, 519, 106, 520, 651, 109, 651, 518, 21, 21, 106, 518, 106, 518, 106, 518, 106, 21, 1, 516, 517, 516, 518, 108, 518, 518, 519, 106, 520, 652, 109, 652, 518, 21, 21, 106, 518, 106, 518, 106, 518, 106, 21, 1, 516, 517, 516, 518, 108, 518, 518, 519, 106, 520, 653, 109, 653, 518, 21, 21, 106, 518, 106, 518, 106, 518, 106, 21, 1, 654, 655, 654, 518, 108, 518, 518, 519, 106, 656, 109, 518, 21, 21, 106, 518, 106, 518, 106, 518, 106, 21, 1, 657, 658, 657, 108, 499, 656, 109, 21, 21, 106, 21, 1, 659, 26, 21, 1, 660, 107, 660, 108, 499, 656, 109, 21, 21, 106, 21, 1, 661, 662, 661, 526, 663, 526, 526, 106, 106, 528, 109, 526, 21, 21, 106, 526, 106, 526, 106, 526, 106, 21, 1, 664, 26, 21, 1, 665, 666, 665, 526, 663, 526, 526, 106, 106, 528, 109, 526, 21, 21, 106, 526, 106, 526, 106, 526, 106, 21, 1, 667, 26, 21, 1, 668, 107, 668, 669, 109, 21, 21, 106, 21, 1, 670, 671, 670, 171, 672, 172, 21, 21, 169, 21, 1, 673, 674, 673, 171, 675, 172, 21, 21, 169, 21, 1, 676, 26, 21, 1, 677, 170, 677, 171, 675, 172, 21, 21, 169, 21, 1, 675, 678, 675, 679, 171, 679, 679, 169, 169, 680, 681, 682, 683, 684, 685, 686, 172, 680, 681, 682, 683, 684, 685, 686, 679, 21, 21, 169, 679, 169, 679, 169, 679, 169, 21, 1, 687, 26, 21, 1, 688, 170, 688, 679, 171, 679, 679, 169, 169, 680, 681, 682, 683, 684, 685, 686, 172, 680, 681, 682, 683, 684, 685, 686, 679, 21, 21, 169, 679, 169, 679, 169, 679, 169, 21, 1, 689, 690, 689, 691, 171, 691, 691, 692, 169, 693, 172, 691, 21, 21, 169, 691, 169, 691, 169, 691, 169, 21, 1, 694, 695, 694, 171, 675, 693, 172, 21, 21, 169, 21, 1, 696, 26, 21, 1, 697, 170, 697, 171, 675, 693, 172, 21, 21, 169, 21, 1, 693, 698, 693, 699, 700, 699, 699, 169, 169, 701, 172, 699, 21, 21, 169, 699, 169, 699, 169, 699, 169, 21, 1, 702, 26, 21, 1, 703, 704, 703, 699, 700, 699, 699, 169, 169, 701, 172, 699, 21, 21, 169, 699, 169, 699, 169, 699, 169, 21, 1, 705, 26, 21, 1, 706, 170, 706, 700, 172, 21, 21, 169, 21, 1, 707, 708, 707, 77, 709, 78, 21, 21, 69, 21, 1, 710, 711, 710, 699, 171, 699, 699, 692, 169, 172, 699, 21, 21, 169, 699, 169, 699, 169, 699, 169, 21, 1, 712, 26, 21, 1, 169, 170, 171, 714, 172, 21, 21, 169, 713, 169, 713, 169, 713, 169, 21, 1, 169, 170, 171, 716, 172, 717, 21, 21, 169, 715, 169, 715, 169, 715, 169, 21, 1, 169, 170, 171, 716, 172, 717, 21, 21, 169, 718, 169, 718, 169, 718, 169, 21, 1, 169, 170, 171, 716, 172, 717, 21, 21, 169, 719, 169, 719, 169, 719, 169, 21, 1, 169, 170, 171, 716, 172, 717, 21, 21, 169, 21, 1, 169, 170, 171, 721, 172, 21, 21, 169, 720, 169, 713, 169, 713, 169, 21, 1, 169, 170, 171, 722, 716, 172, 717, 21, 21, 169, 723, 169, 715, 169, 715, 169, 21, 1, 169, 170, 171, 172, 21, 21, 169, 724, 169, 21, 1, 169, 170, 171, 725, 172, 21, 21, 169, 726, 169, 21, 1, 169, 170, 171, 172, 21, 21, 169, 727, 169, 21, 1, 169, 170, 171, 728, 172, 21, 21, 169, 729, 169, 21, 1, 169, 170, 171, 172, 21, 21, 169, 730, 169, 21, 1, 169, 170, 171, 172, 717, 21, 21, 169, 731, 169, 21, 1, 169, 170, 171, 172, 717, 21, 21, 169, 732, 169, 21, 1, 169, 170, 171, 172, 717, 21, 21, 169, 21, 1, 710, 711, 710, 171, 692, 172, 21, 21, 169, 21, 1, 169, 170, 171, 728, 172, 21, 21, 169, 733, 169, 21, 1, 169, 170, 171, 728, 172, 21, 21, 169, 21, 1, 169, 170, 171, 725, 172, 21, 21, 169, 734, 169, 21, 1, 169, 170, 171, 725, 172, 21, 21, 169, 21, 1, 169, 170, 171, 722, 716, 172, 717, 21, 21, 169, 735, 169, 718, 169, 718, 169, 21, 1, 169, 170, 171, 722, 716, 172, 717, 21, 21, 169, 719, 169, 719, 169, 719, 169, 21, 1, 169, 170, 171, 737, 172, 717, 21, 21, 169, 736, 169, 736, 169, 736, 169, 21, 1, 169, 170, 171, 739, 172, 717, 21, 21, 169, 738, 169, 738, 169, 738, 169, 21, 1, 169, 170, 171, 739, 172, 717, 21, 21, 169, 740, 169, 740, 169, 740, 169, 21, 1, 169, 170, 171, 739, 172, 717, 21, 21, 169, 741, 169, 741, 169, 741, 169, 21, 1, 169, 170, 171, 739, 172, 717, 21, 21, 169, 21, 1, 169, 170, 171, 172, 21, 21, 169, 742, 169, 736, 169, 736, 169, 21, 1, 169, 170, 171, 722, 739, 172, 717, 21, 21, 169, 743, 169, 738, 169, 738, 169, 21, 1, 169, 170, 171, 722, 739, 172, 717, 21, 21, 169, 744, 169, 740, 169, 740, 169, 21, 1, 169, 170, 171, 722, 739, 172, 717, 21, 21, 169, 741, 169, 741, 169, 741, 169, 21, 1, 169, 170, 171, 172, 21, 21, 169, 745, 169, 21, 1, 169, 170, 171, 722, 172, 21, 21, 169, 746, 169, 21, 1, 169, 170, 171, 722, 172, 21, 21, 169, 747, 169, 21, 1, 169, 170, 171, 722, 172, 21, 21, 169, 21, 1, 169, 170, 171, 721, 172, 21, 21, 169, 21, 1, 748, 26, 21, 1, 689, 690, 689, 691, 171, 691, 691, 692, 169, 693, 749, 172, 749, 691, 21, 21, 169, 691, 169, 691, 169, 691, 169, 21, 1, 689, 690, 689, 691, 171, 691, 691, 692, 169, 693, 750, 172, 750, 691, 21, 21, 169, 691, 169, 691, 169, 691, 169, 21, 1, 689, 690, 689, 691, 171, 691, 691, 692, 169, 693, 751, 172, 751, 691, 21, 21, 169, 691, 169, 691, 169, 691, 169, 21, 1, 689, 690, 689, 691, 171, 691, 691, 692, 169, 693, 752, 172, 752, 691, 21, 21, 169, 691, 169, 691, 169, 691, 169, 21, 1, 689, 690, 689, 691, 171, 691, 691, 692, 169, 693, 753, 172, 753, 691, 21, 21, 169, 691, 169, 691, 169, 691, 169, 21, 1, 689, 690, 689, 691, 171, 691, 691, 692, 169, 693, 754, 172, 754, 691, 21, 21, 169, 691, 169, 691, 169, 691, 169, 21, 1, 689, 690, 689, 691, 171, 691, 691, 692, 169, 693, 755, 172, 755, 691, 21, 21, 169, 691, 169, 691, 169, 691, 169, 21, 1, 689, 690, 689, 691, 171, 691, 691, 692, 169, 693, 756, 172, 756, 691, 21, 21, 169, 691, 169, 691, 169, 691, 169, 21, 1, 757, 758, 757, 691, 171, 691, 691, 692, 169, 759, 172, 691, 21, 21, 169, 691, 169, 691, 169, 691, 169, 21, 1, 760, 761, 760, 171, 675, 759, 172, 21, 21, 169, 21, 1, 762, 26, 21, 1, 763, 170, 763, 171, 675, 759, 172, 21, 21, 169, 21, 1, 759, 764, 759, 765, 700, 765, 765, 169, 169, 701, 172, 765, 21, 21, 169, 765, 169, 765, 169, 765, 169, 21, 1, 766, 26, 21, 1, 767, 704, 767, 765, 700, 765, 765, 169, 169, 701, 172, 765, 21, 21, 169, 765, 169, 765, 169, 765, 169, 21, 1, 768, 769, 768, 770, 171, 770, 770, 771, 169, 172, 770, 21, 21, 169, 770, 169, 770, 169, 770, 169, 21, 1, 772, 26, 21, 1, 689, 690, 689, 691, 171, 691, 691, 692, 169, 693, 773, 172, 773, 691, 21, 21, 169, 691, 169, 691, 169, 691, 169, 21, 1, 689, 690, 689, 691, 171, 691, 691, 692, 169, 693, 774, 172, 774, 691, 21, 21, 169, 691, 169, 691, 169, 691, 169, 21, 1, 689, 690, 689, 691, 171, 691, 691, 692, 169, 693, 775, 172, 775, 691, 21, 21, 169, 691, 169, 691, 169, 691, 169, 21, 1, 689, 690, 689, 691, 171, 691, 691, 692, 169, 693, 776, 172, 776, 691, 21, 21, 169, 691, 169, 691, 169, 691, 169, 21, 1, 689, 690, 689, 691, 171, 691, 691, 692, 169, 693, 777, 172, 777, 691, 21, 21, 169, 691, 169, 691, 169, 691, 169, 21, 1, 778, 779, 778, 691, 171, 691, 691, 692, 169, 780, 172, 691, 21, 21, 169, 691, 169, 691, 169, 691, 169, 21, 1, 781, 782, 781, 171, 675, 780, 172, 21, 21, 169, 21, 1, 783, 26, 21, 1, 784, 170, 784, 171, 675, 780, 172, 21, 21, 169, 21, 1, 780, 785, 780, 699, 786, 699, 699, 169, 169, 701, 172, 699, 21, 21, 169, 699, 169, 699, 169, 699, 169, 21, 1, 787, 26, 21, 1, 788, 789, 788, 699, 786, 699, 699, 169, 169, 701, 172, 699, 21, 21, 169, 699, 169, 699, 169, 699, 169, 21, 1, 790, 26, 21, 1, 791, 170, 791, 786, 172, 21, 21, 169, 21, 1, 792, 793, 792, 390, 794, 392, 386, 386, 389, 386, 1, 795, 26, 21, 1, 689, 690, 689, 691, 171, 691, 691, 692, 169, 693, 796, 172, 796, 691, 21, 21, 169, 691, 169, 691, 169, 691, 169, 21, 1, 689, 690, 689, 691, 171, 691, 691, 692, 169, 693, 797, 172, 797, 691, 21, 21, 169, 691, 169, 691, 169, 691, 169, 21, 1, 689, 690, 689, 691, 171, 691, 691, 692, 169, 693, 798, 172, 798, 691, 21, 21, 169, 691, 169, 691, 169, 691, 169, 21, 1, 689, 690, 689, 691, 171, 691, 691, 692, 169, 693, 799, 172, 799, 691, 21, 21, 169, 691, 169, 691, 169, 691, 169, 21, 1, 800, 801, 800, 691, 171, 691, 691, 692, 169, 802, 172, 691, 21, 21, 169, 691, 169, 691, 169, 691, 169, 21, 1, 803, 804, 803, 171, 675, 802, 172, 21, 21, 169, 21, 1, 805, 26, 21, 1, 806, 170, 806, 171, 675, 802, 172, 21, 21, 169, 21, 1, 807, 808, 807, 699, 809, 699, 699, 169, 169, 701, 172, 699, 21, 21, 169, 699, 169, 699, 169, 699, 169, 21, 1, 810, 26, 21, 1, 811, 812, 811, 699, 809, 699, 699, 169, 169, 701, 172, 699, 21, 21, 169, 699, 169, 699, 169, 699, 169, 21, 1, 813, 26, 21, 1, 814, 170, 814, 815, 172, 21, 21, 169, 21, 1, 816, 817, 816, 108, 818, 109, 21, 21, 106, 21, 1, 819, 26, 21, 1, 689, 690, 689, 691, 171, 691, 691, 692, 169, 693, 820, 172, 820, 691, 21, 21, 169, 691, 169, 691, 169, 691, 169, 21, 1, 689, 690, 689, 691, 171, 691, 691, 692, 169, 693, 821, 172, 821, 691, 21, 21, 169, 691, 169, 691, 169, 691, 169, 21, 1, 689, 690, 689, 691, 171, 691, 691, 692, 169, 693, 822, 172, 822, 691, 21, 21, 169, 691, 169, 691, 169, 691, 169, 21, 1, 689, 690, 689, 691, 171, 691, 691, 692, 169, 693, 823, 172, 823, 691, 21, 21, 169, 691, 169, 691, 169, 691, 169, 21, 1, 689, 690, 689, 691, 171, 691, 691, 692, 169, 693, 824, 172, 824, 691, 21, 21, 169, 691, 169, 691, 169, 691, 169, 21, 1, 825, 826, 825, 691, 171, 691, 691, 692, 169, 827, 172, 691, 21, 21, 169, 691, 169, 691, 169, 691, 169, 21, 1, 828, 829, 828, 171, 675, 827, 172, 21, 21, 169, 21, 1, 830, 26, 21, 1, 831, 170, 831, 171, 675, 827, 172, 21, 21, 169, 21, 1, 832, 833, 832, 699, 834, 699, 699, 169, 169, 701, 172, 699, 21, 21, 169, 699, 169, 699, 169, 699, 169, 21, 1, 835, 26, 21, 1, 836, 837, 836, 699, 834, 699, 699, 169, 169, 701, 172, 699, 21, 21, 169, 699, 169, 699, 169, 699, 169, 21, 1, 838, 26, 21, 1, 839, 170, 839, 840, 172, 21, 21, 169, 21, 1, 841, 842, 841, 171, 843, 172, 21, 21, 169, 21, 1, 844, 26, 21, 1, 689, 690, 689, 691, 171, 691, 691, 692, 169, 693, 845, 172, 845, 691, 21, 21, 169, 691, 169, 691, 169, 691, 169, 21, 1, 689, 690, 689, 691, 171, 691, 691, 692, 169, 693, 846, 172, 846, 691, 21, 21, 169, 691, 169, 691, 169, 691, 169, 21, 1, 847, 848, 847, 691, 171, 691, 691, 692, 169, 849, 172, 691, 21, 21, 169, 691, 169, 691, 169, 691, 169, 21, 1, 850, 851, 850, 171, 675, 849, 172, 21, 21, 169, 21, 1, 852, 26, 21, 1, 853, 170, 853, 171, 675, 849, 172, 21, 21, 169, 21, 1, 849, 854, 849, 699, 855, 699, 699, 169, 169, 701, 172, 699, 21, 21, 169, 699, 169, 699, 169, 699, 169, 21, 1, 856, 26, 21, 1, 857, 858, 857, 699, 855, 699, 699, 169, 169, 701, 172, 699, 21, 21, 169, 699, 169, 699, 169, 699, 169, 21, 1, 859, 26, 21, 1, 860, 170, 860, 855, 172, 21, 21, 169, 21, 1, 861, 862, 861, 197, 863, 198, 194, 194, 195, 194, 1, 864, 865, 864, 201, 866, 263, 199, 199, 261, 199, 1, 867, 200, 201, 199, 1, 868, 262, 868, 201, 866, 263, 199, 199, 261, 199, 1, 866, 869, 866, 870, 201, 870, 870, 261, 261, 871, 872, 873, 874, 875, 876, 877, 263, 871, 872, 873, 874, 875, 876, 877, 870, 199, 199, 261, 870, 261, 870, 261, 870, 261, 199, 1, 878, 200, 201, 199, 1, 879, 262, 879, 870, 201, 870, 870, 261, 261, 871, 872, 873, 874, 875, 876, 877, 263, 871, 872, 873, 874, 875, 876, 877, 870, 199, 199, 261, 870, 261, 870, 261, 870, 261, 199, 1, 880, 881, 880, 882, 201, 882, 882, 883, 261, 884, 263, 882, 199, 199, 261, 882, 261, 882, 261, 882, 261, 199, 1, 885, 886, 885, 201, 866, 884, 263, 199, 199, 261, 199, 1, 887, 200, 201, 199, 1, 888, 262, 888, 201, 866, 884, 263, 199, 199, 261, 199, 1, 884, 889, 884, 890, 265, 890, 890, 261, 261, 891, 263, 890, 199, 199, 261, 890, 261, 890, 261, 890, 261, 199, 1, 892, 200, 201, 199, 1, 893, 894, 893, 890, 265, 890, 890, 261, 261, 891, 263, 890, 199, 199, 261, 890, 261, 890, 261, 890, 261, 199, 1, 895, 200, 201, 199, 1, 896, 262, 896, 265, 263, 199, 199, 261, 199, 1, 897, 898, 897, 890, 201, 890, 890, 883, 261, 263, 890, 199, 199, 261, 890, 261, 890, 261, 890, 261, 199, 1, 899, 200, 201, 199, 1, 900, 901, 900, 902, 201, 902, 902, 903, 199, 904, 902, 199, 902, 199, 902, 199, 902, 199, 1, 905, 906, 905, 201, 907, 904, 199, 1, 908, 200, 201, 199, 1, 909, 200, 909, 201, 907, 904, 199, 1, 907, 910, 907, 911, 201, 911, 911, 199, 199, 912, 913, 914, 915, 916, 917, 918, 912, 913, 914, 915, 916, 917, 918, 911, 199, 911, 199, 911, 199, 911, 199, 1, 919, 200, 201, 199, 1, 920, 200, 920, 911, 201, 911, 911, 199, 199, 912, 913, 914, 915, 916, 917, 918, 912, 913, 914, 915, 916, 917, 918, 911, 199, 911, 199, 911, 199, 911, 199, 1, 900, 901, 900, 902, 201, 902, 902, 903, 199, 904, 921, 921, 902, 199, 902, 199, 902, 199, 902, 199, 1, 922, 200, 201, 199, 1, 900, 901, 900, 902, 201, 902, 902, 903, 199, 904, 923, 923, 902, 199, 902, 199, 902, 199, 902, 199, 1, 904, 924, 904, 925, 265, 925, 925, 199, 199, 926, 925, 199, 925, 199, 925, 199, 925, 199, 1, 927, 200, 201, 199, 1, 928, 929, 928, 925, 265, 925, 925, 199, 199, 926, 925, 199, 925, 199, 925, 199, 925, 199, 1, 930, 200, 201, 199, 1, 931, 200, 931, 265, 199, 1, 932, 933, 932, 925, 201, 925, 925, 903, 199, 925, 199, 925, 199, 925, 199, 925, 199, 1, 934, 935, 934, 201, 907, 199, 1, 936, 200, 201, 199, 1, 937, 200, 937, 201, 907, 199, 1, 938, 200, 201, 199, 1, 900, 901, 900, 902, 201, 902, 902, 903, 199, 904, 939, 939, 902, 199, 902, 199, 902, 199, 902, 199, 1, 900, 901, 900, 902, 201, 902, 902, 903, 199, 904, 940, 940, 902, 199, 902, 199, 902, 199, 902, 199, 1, 900, 901, 900, 902, 201, 902, 902, 903, 199, 904, 941, 941, 902, 199, 902, 199, 902, 199, 902, 199, 1, 900, 901, 900, 902, 201, 902, 902, 903, 199, 904, 942, 942, 902, 199, 902, 199, 902, 199, 902, 199, 1, 943, 944, 943, 902, 201, 902, 902, 903, 199, 945, 902, 199, 902, 199, 902, 199, 902, 199, 1, 946, 947, 946, 201, 907, 945, 199, 1, 948, 200, 201, 199, 1, 949, 200, 949, 201, 907, 945, 199, 1, 950, 951, 950, 925, 952, 925, 925, 199, 199, 926, 925, 199, 925, 199, 925, 199, 925, 199, 1, 953, 200, 201, 199, 1, 954, 955, 954, 925, 952, 925, 925, 199, 199, 926, 925, 199, 925, 199, 925, 199, 925, 199, 1, 956, 200, 201, 199, 1, 957, 200, 957, 958, 199, 1, 200, 201, 960, 199, 959, 199, 959, 199, 959, 199, 1, 200, 201, 962, 963, 199, 961, 199, 961, 199, 961, 199, 1, 200, 201, 962, 963, 199, 964, 199, 964, 199, 964, 199, 1, 200, 201, 962, 963, 199, 965, 199, 965, 199, 965, 199, 1, 200, 201, 962, 963, 199, 1, 200, 201, 967, 199, 966, 199, 959, 199, 959, 199, 1, 200, 201, 968, 962, 963, 199, 969, 199, 961, 199, 961, 199, 1, 200, 201, 199, 970, 199, 1, 200, 201, 971, 199, 972, 199, 1, 200, 201, 199, 973, 199, 1, 200, 201, 974, 199, 975, 199, 1, 200, 201, 199, 976, 199, 1, 200, 201, 963, 199, 977, 199, 1, 200, 201, 963, 199, 978, 199, 1, 200, 201, 963, 199, 1, 932, 933, 932, 201, 903, 199, 1, 200, 201, 974, 199, 979, 199, 1, 200, 201, 974, 199, 1, 200, 201, 971, 199, 980, 199, 1, 200, 201, 971, 199, 1, 200, 201, 968, 962, 963, 199, 981, 199, 964, 199, 964, 199, 1, 200, 201, 968, 962, 963, 199, 965, 199, 965, 199, 965, 199, 1, 200, 201, 983, 963, 199, 982, 199, 982, 199, 982, 199, 1, 200, 201, 985, 963, 199, 984, 199, 984, 199, 984, 199, 1, 200, 201, 985, 963, 199, 986, 199, 986, 199, 986, 199, 1, 200, 201, 985, 963, 199, 987, 199, 987, 199, 987, 199, 1, 200, 201, 985, 963, 199, 1, 200, 201, 199, 988, 199, 982, 199, 982, 199, 1, 200, 201, 968, 985, 963, 199, 989, 199, 984, 199, 984, 199, 1, 200, 201, 968, 985, 963, 199, 990, 199, 986, 199, 986, 199, 1, 200, 201, 968, 985, 963, 199, 987, 199, 987, 199, 987, 199, 1, 200, 201, 199, 991, 199, 1, 200, 201, 968, 199, 992, 199, 1, 200, 201, 968, 199, 993, 199, 1, 200, 201, 968, 199, 1, 200, 201, 967, 199, 1, 994, 200, 201, 199, 1, 900, 901, 900, 902, 201, 902, 902, 903, 199, 904, 995, 995, 902, 199, 902, 199, 902, 199, 902, 199, 1, 900, 901, 900, 902, 201, 902, 902, 903, 199, 904, 996, 996, 902, 199, 902, 199, 902, 199, 902, 199, 1, 900, 901, 900, 902, 201, 902, 902, 903, 199, 904, 997, 997, 902, 199, 902, 199, 902, 199, 902, 199, 1, 900, 901, 900, 902, 201, 902, 902, 903, 199, 904, 998, 998, 902, 199, 902, 199, 902, 199, 902, 199, 1, 900, 901, 900, 902, 201, 902, 902, 903, 199, 904, 999, 999, 902, 199, 902, 199, 902, 199, 902, 199, 1, 1000, 1001, 1000, 902, 201, 902, 902, 903, 199, 1002, 902, 199, 902, 199, 902, 199, 902, 199, 1, 1003, 1004, 1003, 201, 907, 1002, 199, 1, 1005, 200, 201, 199, 1, 1006, 200, 1006, 201, 907, 1002, 199, 1, 1007, 1008, 1007, 925, 1009, 925, 925, 199, 199, 926, 925, 199, 925, 199, 925, 199, 925, 199, 1, 1010, 200, 201, 199, 1, 1011, 1012, 1011, 925, 1009, 925, 925, 199, 199, 926, 925, 199, 925, 199, 925, 199, 925, 199, 1, 1013, 200, 201, 199, 1, 1014, 200, 1014, 1015, 199, 1, 1016, 1017, 1016, 171, 675, 172, 21, 21, 169, 21, 1, 1018, 26, 21, 1, 1019, 1020, 1019, 171, 675, 172, 21, 21, 169, 21, 1, 1021, 200, 201, 199, 1, 900, 901, 900, 902, 201, 902, 902, 903, 199, 904, 1022, 1022, 902, 199, 902, 199, 902, 199, 902, 199, 1, 900, 901, 900, 902, 201, 902, 902, 903, 199, 904, 1023, 1023, 902, 199, 902, 199, 902, 199, 902, 199, 1, 1024, 1025, 1024, 902, 201, 902, 902, 903, 199, 1026, 902, 199, 902, 199, 902, 199, 902, 199, 1, 1027, 1028, 1027, 201, 907, 1026, 199, 1, 1029, 200, 201, 199, 1, 1030, 200, 1030, 201, 907, 1026, 199, 1, 1026, 1031, 1026, 925, 201, 925, 925, 199, 199, 926, 925, 199, 925, 199, 925, 199, 925, 199, 1, 1032, 200, 201, 199, 1, 1033, 200, 1033, 925, 201, 925, 925, 199, 199, 926, 925, 199, 925, 199, 925, 199, 925, 199, 1, 1034, 200, 201, 199, 1, 900, 901, 900, 902, 201, 902, 902, 903, 199, 904, 1035, 1035, 902, 199, 902, 199, 902, 199, 902, 199, 1, 900, 901, 900, 902, 201, 902, 902, 903, 199, 904, 1036, 1036, 902, 199, 902, 199, 902, 199, 902, 199, 1, 900, 901, 900, 902, 201, 902, 902, 903, 199, 904, 1037, 1037, 902, 199, 902, 199, 902, 199, 902, 199, 1, 900, 901, 900, 902, 201, 902, 902, 903, 199, 904, 1038, 1038, 902, 199, 902, 199, 902, 199, 902, 199, 1, 1039, 1040, 1039, 902, 201, 902, 902, 903, 199, 1041, 902, 199, 902, 199, 902, 199, 902, 199, 1, 1042, 1043, 1042, 201, 907, 1041, 199, 1, 1044, 200, 201, 199, 1, 1045, 200, 1045, 201, 907, 1041, 199, 1, 1046, 1047, 1046, 925, 1048, 925, 925, 199, 199, 926, 925, 199, 925, 199, 925, 199, 925, 199, 1, 1049, 200, 201, 199, 1, 1050, 1051, 1050, 925, 1048, 925, 925, 199, 199, 926, 925, 199, 925, 199, 925, 199, 925, 199, 1, 1052, 200, 201, 199, 1, 1053, 200, 1053, 1054, 199, 1, 1055, 1056, 1055, 229, 1057, 230, 21, 21, 227, 21, 1, 1058, 26, 21, 1, 1059, 1060, 1059, 229, 1057, 230, 21, 21, 227, 21, 1, 1061, 26, 21, 1, 1062, 228, 1062, 229, 1057, 230, 21, 21, 227, 21, 1, 1057, 1063, 1057, 1064, 229, 1064, 1064, 227, 227, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 230, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1064, 21, 21, 227, 1064, 227, 1064, 227, 1064, 227, 21, 1, 1072, 26, 21, 1, 1073, 228, 1073, 1064, 229, 1064, 1064, 227, 227, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 230, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1064, 21, 21, 227, 1064, 227, 1064, 227, 1064, 227, 21, 1, 1074, 1075, 1074, 1076, 229, 1076, 1076, 1077, 227, 1078, 230, 1076, 21, 21, 227, 1076, 227, 1076, 227, 1076, 227, 21, 1, 1079, 1080, 1079, 229, 1057, 1078, 230, 21, 21, 227, 21, 1, 1081, 26, 21, 1, 1082, 228, 1082, 229, 1057, 1078, 230, 21, 21, 227, 21, 1, 1078, 1083, 1078, 1084, 1085, 1084, 1084, 227, 227, 1086, 230, 1084, 21, 21, 227, 1084, 227, 1084, 227, 1084, 227, 21, 1, 1087, 26, 21, 1, 1088, 1089, 1088, 1084, 1085, 1084, 1084, 227, 227, 1086, 230, 1084, 21, 21, 227, 1084, 227, 1084, 227, 1084, 227, 21, 1, 1090, 26, 21, 1, 1091, 228, 1091, 1085, 230, 21, 21, 227, 21, 1, 1092, 1093, 1092, 77, 1094, 78, 21, 21, 69, 21, 1, 1095, 1096, 1095, 1084, 229, 1084, 1084, 1077, 227, 230, 1084, 21, 21, 227, 1084, 227, 1084, 227, 1084, 227, 21, 1, 1097, 1098, 1097, 229, 1057, 230, 21, 21, 227, 21, 1, 1099, 26, 21, 1, 227, 228, 229, 1101, 230, 21, 21, 227, 1100, 227, 1100, 227, 1100, 227, 21, 1, 227, 228, 229, 1103, 230, 1104, 21, 21, 227, 1102, 227, 1102, 227, 1102, 227, 21, 1, 227, 228, 229, 1103, 230, 1104, 21, 21, 227, 1105, 227, 1105, 227, 1105, 227, 21, 1, 227, 228, 229, 1103, 230, 1104, 21, 21, 227, 1106, 227, 1106, 227, 1106, 227, 21, 1, 227, 228, 229, 1103, 230, 1104, 21, 21, 227, 21, 1, 227, 228, 229, 1108, 230, 21, 21, 227, 1107, 227, 1100, 227, 1100, 227, 21, 1, 227, 228, 229, 1109, 1103, 230, 1104, 21, 21, 227, 1110, 227, 1102, 227, 1102, 227, 21, 1, 227, 228, 229, 230, 21, 21, 227, 1111, 227, 21, 1, 227, 228, 229, 1112, 230, 21, 21, 227, 1113, 227, 21, 1, 227, 228, 229, 230, 21, 21, 227, 1114, 227, 21, 1, 227, 228, 229, 1115, 230, 21, 21, 227, 1116, 227, 21, 1, 227, 228, 229, 230, 21, 21, 227, 1117, 227, 21, 1, 227, 228, 229, 230, 1104, 21, 21, 227, 1118, 227, 21, 1, 227, 228, 229, 230, 1104, 21, 21, 227, 1119, 227, 21, 1, 227, 228, 229, 230, 1104, 21, 21, 227, 21, 1, 1095, 1096, 1095, 229, 1077, 230, 21, 21, 227, 21, 1, 227, 228, 229, 1115, 230, 21, 21, 227, 1120, 227, 21, 1, 227, 228, 229, 1115, 230, 21, 21, 227, 21, 1, 227, 228, 229, 1112, 230, 21, 21, 227, 1121, 227, 21, 1, 227, 228, 229, 1112, 230, 21, 21, 227, 21, 1, 227, 228, 229, 1109, 1103, 230, 1104, 21, 21, 227, 1122, 227, 1105, 227, 1105, 227, 21, 1, 227, 228, 229, 1109, 1103, 230, 1104, 21, 21, 227, 1106, 227, 1106, 227, 1106, 227, 21, 1, 227, 228, 229, 1124, 230, 1104, 21, 21, 227, 1123, 227, 1123, 227, 1123, 227, 21, 1, 227, 228, 229, 1126, 230, 1104, 21, 21, 227, 1125, 227, 1125, 227, 1125, 227, 21, 1, 227, 228, 229, 1126, 230, 1104, 21, 21, 227, 1127, 227, 1127, 227, 1127, 227, 21, 1, 227, 228, 229, 1126, 230, 1104, 21, 21, 227, 1128, 227, 1128, 227, 1128, 227, 21, 1, 227, 228, 229, 1126, 230, 1104, 21, 21, 227, 21, 1, 227, 228, 229, 230, 21, 21, 227, 1129, 227, 1123, 227, 1123, 227, 21, 1, 227, 228, 229, 1109, 1126, 230, 1104, 21, 21, 227, 1130, 227, 1125, 227, 1125, 227, 21, 1, 227, 228, 229, 1109, 1126, 230, 1104, 21, 21, 227, 1131, 227, 1127, 227, 1127, 227, 21, 1, 227, 228, 229, 1109, 1126, 230, 1104, 21, 21, 227, 1128, 227, 1128, 227, 1128, 227, 21, 1, 227, 228, 229, 230, 21, 21, 227, 1132, 227, 21, 1, 227, 228, 229, 1109, 230, 21, 21, 227, 1133, 227, 21, 1, 227, 228, 229, 1109, 230, 21, 21, 227, 1134, 227, 21, 1, 227, 228, 229, 1109, 230, 21, 21, 227, 21, 1, 227, 228, 229, 1108, 230, 21, 21, 227, 21, 1, 1135, 26, 21, 1, 1074, 1075, 1074, 1076, 229, 1076, 1076, 1077, 227, 1078, 1136, 230, 1136, 1076, 21, 21, 227, 1076, 227, 1076, 227, 1076, 227, 21, 1, 1074, 1075, 1074, 1076, 229, 1076, 1076, 1077, 227, 1078, 1137, 230, 1137, 1076, 21, 21, 227, 1076, 227, 1076, 227, 1076, 227, 21, 1, 1074, 1075, 1074, 1076, 229, 1076, 1076, 1077, 227, 1078, 1138, 230, 1138, 1076, 21, 21, 227, 1076, 227, 1076, 227, 1076, 227, 21, 1, 1074, 1075, 1074, 1076, 229, 1076, 1076, 1077, 227, 1078, 1139, 230, 1139, 1076, 21, 21, 227, 1076, 227, 1076, 227, 1076, 227, 21, 1, 1074, 1075, 1074, 1076, 229, 1076, 1076, 1077, 227, 1078, 1140, 230, 1140, 1076, 21, 21, 227, 1076, 227, 1076, 227, 1076, 227, 21, 1, 1074, 1075, 1074, 1076, 229, 1076, 1076, 1077, 227, 1078, 1141, 230, 1141, 1076, 21, 21, 227, 1076, 227, 1076, 227, 1076, 227, 21, 1, 1074, 1075, 1074, 1076, 229, 1076, 1076, 1077, 227, 1078, 1142, 230, 1142, 1076, 21, 21, 227, 1076, 227, 1076, 227, 1076, 227, 21, 1, 1074, 1075, 1074, 1076, 229, 1076, 1076, 1077, 227, 1078, 1143, 230, 1143, 1076, 21, 21, 227, 1076, 227, 1076, 227, 1076, 227, 21, 1, 1144, 1145, 1144, 1076, 229, 1076, 1076, 1077, 227, 1146, 230, 1076, 21, 21, 227, 1076, 227, 1076, 227, 1076, 227, 21, 1, 1147, 1148, 1147, 229, 1057, 1146, 230, 21, 21, 227, 21, 1, 1149, 26, 21, 1, 1150, 228, 1150, 229, 1057, 1146, 230, 21, 21, 227, 21, 1, 1146, 1151, 1146, 1152, 1085, 1152, 1152, 227, 227, 1086, 230, 1152, 21, 21, 227, 1152, 227, 1152, 227, 1152, 227, 21, 1, 1153, 26, 21, 1, 1154, 1089, 1154, 1152, 1085, 1152, 1152, 227, 227, 1086, 230, 1152, 21, 21, 227, 1152, 227, 1152, 227, 1152, 227, 21, 1, 1155, 1156, 1155, 1157, 229, 1157, 1157, 1158, 227, 230, 1157, 21, 21, 227, 1157, 227, 1157, 227, 1157, 227, 21, 1, 1159, 26, 21, 1, 1074, 1075, 1074, 1076, 229, 1076, 1076, 1077, 227, 1078, 1160, 230, 1160, 1076, 21, 21, 227, 1076, 227, 1076, 227, 1076, 227, 21, 1, 1074, 1075, 1074, 1076, 229, 1076, 1076, 1077, 227, 1078, 1161, 230, 1161, 1076, 21, 21, 227, 1076, 227, 1076, 227, 1076, 227, 21, 1, 1074, 1075, 1074, 1076, 229, 1076, 1076, 1077, 227, 1078, 1162, 230, 1162, 1076, 21, 21, 227, 1076, 227, 1076, 227, 1076, 227, 21, 1, 1074, 1075, 1074, 1076, 229, 1076, 1076, 1077, 227, 1078, 1163, 230, 1163, 1076, 21, 21, 227, 1076, 227, 1076, 227, 1076, 227, 21, 1, 1074, 1075, 1074, 1076, 229, 1076, 1076, 1077, 227, 1078, 1164, 230, 1164, 1076, 21, 21, 227, 1076, 227, 1076, 227, 1076, 227, 21, 1, 1165, 1166, 1165, 1076, 229, 1076, 1076, 1077, 227, 1167, 230, 1076, 21, 21, 227, 1076, 227, 1076, 227, 1076, 227, 21, 1, 1168, 1169, 1168, 229, 1057, 1167, 230, 21, 21, 227, 21, 1, 1170, 26, 21, 1, 1171, 228, 1171, 229, 1057, 1167, 230, 21, 21, 227, 21, 1, 1167, 1172, 1167, 1084, 1173, 1084, 1084, 227, 227, 1086, 230, 1084, 21, 21, 227, 1084, 227, 1084, 227, 1084, 227, 21, 1, 1174, 26, 21, 1, 1175, 1176, 1175, 1084, 1173, 1084, 1084, 227, 227, 1086, 230, 1084, 21, 21, 227, 1084, 227, 1084, 227, 1084, 227, 21, 1, 1177, 26, 21, 1, 1178, 228, 1178, 1173, 230, 21, 21, 227, 21, 1, 1179, 1180, 1179, 390, 1181, 392, 386, 386, 389, 386, 1, 1182, 26, 21, 1, 1074, 1075, 1074, 1076, 229, 1076, 1076, 1077, 227, 1078, 1183, 230, 1183, 1076, 21, 21, 227, 1076, 227, 1076, 227, 1076, 227, 21, 1, 1074, 1075, 1074, 1076, 229, 1076, 1076, 1077, 227, 1078, 1184, 230, 1184, 1076, 21, 21, 227, 1076, 227, 1076, 227, 1076, 227, 21, 1, 1074, 1075, 1074, 1076, 229, 1076, 1076, 1077, 227, 1078, 1185, 230, 1185, 1076, 21, 21, 227, 1076, 227, 1076, 227, 1076, 227, 21, 1, 1074, 1075, 1074, 1076, 229, 1076, 1076, 1077, 227, 1078, 1186, 230, 1186, 1076, 21, 21, 227, 1076, 227, 1076, 227, 1076, 227, 21, 1, 1187, 1188, 1187, 1076, 229, 1076, 1076, 1077, 227, 1189, 230, 1076, 21, 21, 227, 1076, 227, 1076, 227, 1076, 227, 21, 1, 1190, 1191, 1190, 229, 1057, 1189, 230, 21, 21, 227, 21, 1, 1192, 26, 21, 1, 1193, 228, 1193, 229, 1057, 1189, 230, 21, 21, 227, 21, 1, 1194, 1195, 1194, 1084, 1196, 1084, 1084, 227, 227, 1086, 230, 1084, 21, 21, 227, 1084, 227, 1084, 227, 1084, 227, 21, 1, 1197, 26, 21, 1, 1198, 1199, 1198, 1084, 1196, 1084, 1084, 227, 227, 1086, 230, 1084, 21, 21, 227, 1084, 227, 1084, 227, 1084, 227, 21, 1, 1200, 26, 21, 1, 1201, 228, 1201, 1202, 230, 21, 21, 227, 21, 1, 1203, 1204, 1203, 108, 1205, 109, 21, 21, 106, 21, 1, 1206, 26, 21, 1, 1074, 1075, 1074, 1076, 229, 1076, 1076, 1077, 227, 1078, 1207, 230, 1207, 1076, 21, 21, 227, 1076, 227, 1076, 227, 1076, 227, 21, 1, 1074, 1075, 1074, 1076, 229, 1076, 1076, 1077, 227, 1078, 1208, 230, 1208, 1076, 21, 21, 227, 1076, 227, 1076, 227, 1076, 227, 21, 1, 1074, 1075, 1074, 1076, 229, 1076, 1076, 1077, 227, 1078, 1209, 230, 1209, 1076, 21, 21, 227, 1076, 227, 1076, 227, 1076, 227, 21, 1, 1074, 1075, 1074, 1076, 229, 1076, 1076, 1077, 227, 1078, 1210, 230, 1210, 1076, 21, 21, 227, 1076, 227, 1076, 227, 1076, 227, 21, 1, 1074, 1075, 1074, 1076, 229, 1076, 1076, 1077, 227, 1078, 1211, 230, 1211, 1076, 21, 21, 227, 1076, 227, 1076, 227, 1076, 227, 21, 1, 1212, 1213, 1212, 1076, 229, 1076, 1076, 1077, 227, 1214, 230, 1076, 21, 21, 227, 1076, 227, 1076, 227, 1076, 227, 21, 1, 1215, 1216, 1215, 229, 1057, 1214, 230, 21, 21, 227, 21, 1, 1217, 26, 21, 1, 1218, 228, 1218, 229, 1057, 1214, 230, 21, 21, 227, 21, 1, 1219, 1220, 1219, 1084, 1221, 1084, 1084, 227, 227, 1086, 230, 1084, 21, 21, 227, 1084, 227, 1084, 227, 1084, 227, 21, 1, 1222, 26, 21, 1, 1223, 1224, 1223, 1084, 1221, 1084, 1084, 227, 227, 1086, 230, 1084, 21, 21, 227, 1084, 227, 1084, 227, 1084, 227, 21, 1, 1225, 26, 21, 1, 1226, 228, 1226, 1227, 230, 21, 21, 227, 21, 1, 1228, 1229, 1228, 171, 1230, 172, 21, 21, 169, 21, 1, 1231, 26, 21, 1, 1074, 1075, 1074, 1076, 229, 1076, 1076, 1077, 227, 1078, 1232, 230, 1232, 1076, 21, 21, 227, 1076, 227, 1076, 227, 1076, 227, 21, 1, 1074, 1075, 1074, 1076, 229, 1076, 1076, 1077, 227, 1078, 1233, 230, 1233, 1076, 21, 21, 227, 1076, 227, 1076, 227, 1076, 227, 21, 1, 1234, 1235, 1234, 1076, 229, 1076, 1076, 1077, 227, 1236, 230, 1076, 21, 21, 227, 1076, 227, 1076, 227, 1076, 227, 21, 1, 1237, 1238, 1237, 229, 1057, 1236, 230, 21, 21, 227, 21, 1, 1239, 26, 21, 1, 1240, 228, 1240, 229, 1057, 1236, 230, 21, 21, 227, 21, 1, 1236, 1241, 1236, 1084, 1242, 1084, 1084, 227, 227, 1086, 230, 1084, 21, 21, 227, 1084, 227, 1084, 227, 1084, 227, 21, 1, 1243, 26, 21, 1, 1244, 1245, 1244, 1084, 1242, 1084, 1084, 227, 227, 1086, 230, 1084, 21, 21, 227, 1084, 227, 1084, 227, 1084, 227, 21, 1, 1246, 26, 21, 1, 1247, 228, 1247, 1242, 230, 21, 21, 227, 21, 1, 1248, 1249, 1248, 197, 1250, 198, 194, 194, 195, 194, 1, 1251, 26, 21, 1, 1074, 1075, 1074, 1076, 229, 1076, 1076, 1077, 227, 1078, 1252, 230, 1252, 1076, 21, 21, 227, 1076, 227, 1076, 227, 1076, 227, 21, 1, 1074, 1075, 1074, 1076, 229, 1076, 1076, 1077, 227, 1078, 1253, 230, 1253, 1076, 21, 21, 227, 1076, 227, 1076, 227, 1076, 227, 21, 1, 1074, 1075, 1074, 1076, 229, 1076, 1076, 1077, 227, 1078, 1254, 230, 1254, 1076, 21, 21, 227, 1076, 227, 1076, 227, 1076, 227, 21, 1, 1074, 1075, 1074, 1076, 229, 1076, 1076, 1077, 227, 1078, 1255, 230, 1255, 1076, 21, 21, 227, 1076, 227, 1076, 227, 1076, 227, 21, 1, 1256, 1257, 1256, 1076, 229, 1076, 1076, 1077, 227, 1258, 230, 1076, 21, 21, 227, 1076, 227, 1076, 227, 1076, 227, 21, 1, 1259, 1260, 1259, 229, 1057, 1258, 230, 21, 21, 227, 21, 1, 1261, 26, 21, 1, 1262, 228, 1262, 229, 1057, 1258, 230, 21, 21, 227, 21, 1, 1263, 1264, 1263, 1084, 1265, 1084, 1084, 227, 227, 1086, 230, 1084, 21, 21, 227, 1084, 227, 1084, 227, 1084, 227, 21, 1, 1266, 26, 21, 1, 1267, 1268, 1267, 1084, 1265, 1084, 1084, 227, 227, 1086, 230, 1084, 21, 21, 227, 1084, 227, 1084, 227, 1084, 227, 21, 1, 1269, 26, 21, 1, 1270, 228, 1270, 1271, 230, 21, 21, 227, 21, 1, 1272, 1273, 1272, 229, 1274, 230, 21, 21, 227, 21, 1, 1275, 26, 21, 1, 1074, 1075, 1074, 1076, 229, 1076, 1076, 1077, 227, 1078, 1276, 230, 1276, 1076, 21, 21, 227, 1076, 227, 1076, 227, 1076, 227, 21, 1, 1074, 1075, 1074, 1076, 229, 1076, 1076, 1077, 227, 1078, 1277, 230, 1277, 1076, 21, 21, 227, 1076, 227, 1076, 227, 1076, 227, 21, 1, 1074, 1075, 1074, 1076, 229, 1076, 1076, 1077, 227, 1078, 1278, 230, 1278, 1076, 21, 21, 227, 1076, 227, 1076, 227, 1076, 227, 21, 1, 1074, 1075, 1074, 1076, 229, 1076, 1076, 1077, 227, 1078, 1279, 230, 1279, 1076, 21, 21, 227, 1076, 227, 1076, 227, 1076, 227, 21, 1, 1280, 1281, 1280, 1076, 229, 1076, 1076, 1077, 227, 1282, 230, 1076, 21, 21, 227, 1076, 227, 1076, 227, 1076, 227, 21, 1, 1283, 1284, 1283, 229, 1057, 1282, 230, 21, 21, 227, 21, 1, 1285, 26, 21, 1, 1286, 228, 1286, 229, 1057, 1282, 230, 21, 21, 227, 21, 1, 1282, 1287, 1282, 1084, 1085, 1084, 1084, 227, 227, 1288, 1289, 1086, 230, 1288, 1289, 1084, 21, 21, 227, 1084, 227, 1084, 227, 1084, 227, 21, 1, 1290, 26, 21, 1, 1291, 1089, 1291, 1084, 1085, 1084, 1084, 227, 227, 1288, 1289, 1086, 230, 1288, 1289, 1084, 21, 21, 227, 1084, 227, 1084, 227, 1084, 227, 21, 1, 1095, 1096, 1095, 1084, 229, 1084, 1084, 1077, 227, 1292, 230, 1292, 1084, 21, 21, 227, 1084, 227, 1084, 227, 1084, 227, 21, 1, 1095, 1096, 1095, 1084, 229, 1084, 1084, 1077, 227, 1293, 230, 1293, 1084, 21, 21, 227, 1084, 227, 1084, 227, 1084, 227, 21, 1, 1095, 1096, 1095, 1084, 229, 1084, 1084, 1077, 227, 1294, 230, 1294, 1084, 21, 21, 227, 1084, 227, 1084, 227, 1084, 227, 21, 1, 1095, 1096, 1095, 1084, 229, 1084, 1084, 1077, 227, 1295, 230, 1295, 1084, 21, 21, 227, 1084, 227, 1084, 227, 1084, 227, 21, 1, 1296, 1297, 1296, 229, 1298, 230, 21, 21, 227, 21, 1, 1095, 1096, 1095, 1084, 229, 1084, 1084, 1077, 227, 1299, 230, 1299, 1084, 21, 21, 227, 1084, 227, 1084, 227, 1084, 227, 21, 1, 1095, 1096, 1095, 1084, 229, 1084, 1084, 1077, 227, 1294, 230, 1294, 1084, 21, 21, 227, 1084, 227, 1084, 227, 1084, 227, 21, 1, 1300, 26, 21, 1, 1301, 200, 201, 199, 1, 900, 901, 900, 902, 201, 902, 902, 903, 199, 904, 1302, 1302, 902, 199, 902, 199, 902, 199, 902, 199, 1, 900, 901, 900, 902, 201, 902, 902, 903, 199, 904, 1303, 1303, 902, 199, 902, 199, 902, 199, 902, 199, 1, 900, 901, 900, 902, 201, 902, 902, 903, 199, 904, 1304, 1304, 902, 199, 902, 199, 902, 199, 902, 199, 1, 900, 901, 900, 902, 201, 902, 902, 903, 199, 904, 1305, 1305, 902, 199, 902, 199, 902, 199, 902, 199, 1, 1306, 1307, 1306, 902, 201, 902, 902, 903, 199, 1308, 902, 199, 902, 199, 902, 199, 902, 199, 1, 1309, 1310, 1309, 201, 907, 1308, 199, 1, 1311, 200, 201, 199, 1, 1312, 200, 1312, 201, 907, 1308, 199, 1, 1308, 1313, 1308, 925, 265, 925, 925, 199, 199, 1314, 1315, 926, 1314, 1315, 925, 199, 925, 199, 925, 199, 925, 199, 1, 1316, 200, 201, 199, 1, 1317, 929, 1317, 925, 265, 925, 925, 199, 199, 1314, 1315, 926, 1314, 1315, 925, 199, 925, 199, 925, 199, 925, 199, 1, 932, 933, 932, 925, 201, 925, 925, 903, 199, 1318, 1318, 925, 199, 925, 199, 925, 199, 925, 199, 1, 932, 933, 932, 925, 201, 925, 925, 903, 199, 1319, 1319, 925, 199, 925, 199, 925, 199, 925, 199, 1, 932, 933, 932, 925, 201, 925, 925, 903, 199, 1320, 1320, 925, 199, 925, 199, 925, 199, 925, 199, 1, 932, 933, 932, 925, 201, 925, 925, 903, 199, 1321, 1321, 925, 199, 925, 199, 925, 199, 925, 199, 1, 1322, 1323, 1322, 201, 1324, 199, 1, 932, 933, 932, 925, 201, 925, 925, 903, 199, 1325, 1325, 925, 199, 925, 199, 925, 199, 925, 199, 1, 932, 933, 932, 925, 201, 925, 925, 903, 199, 1320, 1320, 925, 199, 925, 199, 925, 199, 925, 199, 1, 1326, 200, 201, 199, 1, 900, 901, 900, 902, 201, 902, 902, 903, 199, 904, 1327, 1327, 902, 199, 902, 199, 902, 199, 902, 199, 1, 900, 901, 900, 902, 201, 902, 902, 903, 199, 904, 1328, 1328, 902, 199, 902, 199, 902, 199, 902, 199, 1, 900, 901, 900, 902, 201, 902, 902, 903, 199, 904, 1329, 1329, 902, 199, 902, 199, 902, 199, 902, 199, 1, 900, 901, 900, 902, 201, 902, 902, 903, 199, 904, 1330, 1330, 902, 199, 902, 199, 902, 199, 902, 199, 1, 1331, 1332, 1331, 902, 201, 902, 902, 903, 199, 1333, 902, 199, 902, 199, 902, 199, 902, 199, 1, 1334, 1335, 1334, 201, 907, 1333, 199, 1, 1336, 200, 201, 199, 1, 1337, 200, 1337, 201, 907, 1333, 199, 1, 1333, 1338, 1333, 925, 1339, 925, 925, 199, 199, 926, 925, 199, 925, 199, 925, 199, 925, 199, 1, 1340, 200, 201, 199, 1, 1341, 1342, 1341, 925, 1339, 925, 925, 199, 199, 926, 925, 199, 925, 199, 925, 199, 925, 199, 1, 1343, 200, 201, 199, 1, 1344, 200, 1344, 1339, 199, 1, 1345, 1346, 1345, 390, 1347, 392, 386, 386, 389, 386, 1, 1348, 1349, 1348, 395, 400, 401, 393, 393, 399, 393, 1, 1350, 394, 395, 393, 1, 1351, 1352, 1351, 395, 400, 401, 393, 393, 399, 393, 1, 438, 439, 438, 440, 395, 440, 440, 441, 393, 442, 1353, 1353, 440, 393, 440, 393, 440, 393, 440, 393, 1, 438, 439, 438, 440, 395, 440, 440, 441, 393, 442, 1354, 1354, 440, 393, 440, 393, 440, 393, 440, 393, 1, 438, 439, 438, 440, 395, 440, 440, 441, 393, 442, 1355, 1355, 440, 393, 440, 393, 440, 393, 440, 393, 1, 438, 439, 438, 440, 395, 440, 440, 441, 393, 442, 1356, 1356, 440, 393, 440, 393, 440, 393, 440, 393, 1, 438, 439, 438, 440, 395, 440, 440, 441, 393, 442, 1357, 1357, 440, 393, 440, 393, 440, 393, 440, 393, 1, 1358, 1359, 1358, 440, 395, 440, 440, 441, 393, 1360, 440, 393, 440, 393, 440, 393, 440, 393, 1, 1361, 1362, 1361, 395, 445, 1360, 393, 1, 1363, 394, 395, 393, 1, 1364, 394, 1364, 395, 445, 1360, 393, 1, 1365, 1366, 1365, 463, 1367, 463, 463, 393, 393, 464, 463, 393, 463, 393, 463, 393, 463, 393, 1, 1368, 394, 395, 393, 1, 1369, 1370, 1369, 463, 1367, 463, 463, 393, 393, 464, 463, 393, 463, 393, 463, 393, 463, 393, 1, 1371, 394, 395, 393, 1, 1372, 394, 1372, 1373, 393, 1, 394, 395, 1375, 393, 1374, 393, 1374, 393, 1374, 393, 1, 394, 395, 1377, 1378, 393, 1376, 393, 1376, 393, 1376, 393, 1, 394, 395, 1377, 1378, 393, 1379, 393, 1379, 393, 1379, 393, 1, 394, 395, 1377, 1378, 393, 1380, 393, 1380, 393, 1380, 393, 1, 394, 395, 1377, 1378, 393, 1, 394, 395, 1382, 393, 1381, 393, 1374, 393, 1374, 393, 1, 394, 395, 1383, 1377, 1378, 393, 1384, 393, 1376, 393, 1376, 393, 1, 394, 395, 393, 1385, 393, 1, 394, 395, 1386, 393, 1387, 393, 1, 394, 395, 393, 1388, 393, 1, 394, 395, 1389, 393, 1390, 393, 1, 394, 395, 393, 1391, 393, 1, 394, 395, 1378, 393, 1392, 393, 1, 394, 395, 1378, 393, 1393, 393, 1, 394, 395, 1378, 393, 1, 470, 471, 470, 395, 441, 393, 1, 394, 395, 1389, 393, 1394, 393, 1, 394, 395, 1389, 393, 1, 394, 395, 1386, 393, 1395, 393, 1, 394, 395, 1386, 393, 1, 394, 395, 1383, 1377, 1378, 393, 1396, 393, 1379, 393, 1379, 393, 1, 394, 395, 1383, 1377, 1378, 393, 1380, 393, 1380, 393, 1380, 393, 1, 394, 395, 1398, 1378, 393, 1397, 393, 1397, 393, 1397, 393, 1, 394, 395, 1400, 1378, 393, 1399, 393, 1399, 393, 1399, 393, 1, 394, 395, 1400, 1378, 393, 1401, 393, 1401, 393, 1401, 393, 1, 394, 395, 1400, 1378, 393, 1402, 393, 1402, 393, 1402, 393, 1, 394, 395, 1400, 1378, 393, 1, 394, 395, 393, 1403, 393, 1397, 393, 1397, 393, 1, 394, 395, 1383, 1400, 1378, 393, 1404, 393, 1399, 393, 1399, 393, 1, 394, 395, 1383, 1400, 1378, 393, 1405, 393, 1401, 393, 1401, 393, 1, 394, 395, 1383, 1400, 1378, 393, 1402, 393, 1402, 393, 1402, 393, 1, 394, 395, 393, 1406, 393, 1, 394, 395, 1383, 393, 1407, 393, 1, 394, 395, 1383, 393, 1408, 393, 1, 394, 395, 1383, 393, 1, 394, 395, 1382, 393, 1, 1409, 394, 395, 393, 1, 438, 439, 438, 440, 395, 440, 440, 441, 393, 442, 1410, 1410, 440, 393, 440, 393, 440, 393, 440, 393, 1, 438, 439, 438, 440, 395, 440, 440, 441, 393, 442, 1411, 1411, 440, 393, 440, 393, 440, 393, 440, 393, 1, 1412, 1413, 1412, 440, 395, 440, 440, 441, 393, 1414, 440, 393, 440, 393, 440, 393, 440, 393, 1, 1415, 1416, 1415, 395, 445, 1414, 393, 1, 1417, 394, 395, 393, 1, 1418, 394, 1418, 395, 445, 1414, 393, 1, 1414, 1419, 1414, 463, 1420, 463, 463, 393, 393, 464, 463, 393, 463, 393, 463, 393, 463, 393, 1, 1421, 394, 395, 393, 1, 1422, 1423, 1422, 463, 1420, 463, 463, 393, 393, 464, 463, 393, 463, 393, 463, 393, 463, 393, 1, 1424, 394, 395, 393, 1, 1425, 394, 1425, 1420, 393, 1, 1426, 1427, 1426, 197, 1428, 198, 194, 194, 195, 194, 1, 1429, 1430, 1429, 201, 866, 263, 199, 199, 261, 199, 1, 1431, 200, 201, 199, 1, 1432, 1433, 1432, 201, 866, 263, 199, 199, 261, 199, 1, 1434, 394, 395, 393, 1, 438, 439, 438, 440, 395, 440, 440, 441, 393, 442, 1435, 1435, 440, 393, 440, 393, 440, 393, 440, 393, 1, 438, 439, 438, 440, 395, 440, 440, 441, 393, 442, 1436, 1436, 440, 393, 440, 393, 440, 393, 440, 393, 1, 438, 439, 438, 440, 395, 440, 440, 441, 393, 442, 1437, 1437, 440, 393, 440, 393, 440, 393, 440, 393, 1, 438, 439, 438, 440, 395, 440, 440, 441, 393, 442, 1438, 1438, 440, 393, 440, 393, 440, 393, 440, 393, 1, 1439, 1440, 1439, 440, 395, 440, 440, 441, 393, 1441, 440, 393, 440, 393, 440, 393, 440, 393, 1, 1442, 1443, 1442, 395, 445, 1441, 393, 1, 1444, 394, 395, 393, 1, 1445, 394, 1445, 395, 445, 1441, 393, 1, 1446, 1447, 1446, 463, 1448, 463, 463, 393, 393, 464, 463, 393, 463, 393, 463, 393, 463, 393, 1, 1449, 394, 395, 393, 1, 1450, 1451, 1450, 463, 1448, 463, 463, 393, 393, 464, 463, 393, 463, 393, 463, 393, 463, 393, 1, 1452, 394, 395, 393, 1, 1453, 394, 1453, 1454, 393, 1, 1455, 394, 395, 393, 1, 438, 439, 438, 440, 395, 440, 440, 441, 393, 442, 1456, 1456, 440, 393, 440, 393, 440, 393, 440, 393, 1, 438, 439, 438, 440, 395, 440, 440, 441, 393, 442, 1457, 1457, 440, 393, 440, 393, 440, 393, 440, 393, 1, 438, 439, 438, 440, 395, 440, 440, 441, 393, 442, 1458, 1458, 440, 393, 440, 393, 440, 393, 440, 393, 1, 438, 439, 438, 440, 395, 440, 440, 441, 393, 442, 1459, 1459, 440, 393, 440, 393, 440, 393, 440, 393, 1, 1460, 1461, 1460, 440, 395, 440, 440, 441, 393, 1462, 440, 393, 440, 393, 440, 393, 440, 393, 1, 1463, 1464, 1463, 395, 445, 1462, 393, 1, 1465, 394, 395, 393, 1, 1466, 394, 1466, 395, 445, 1462, 393, 1, 1462, 1467, 1462, 463, 406, 463, 463, 393, 393, 1468, 1469, 464, 1468, 1469, 463, 393, 463, 393, 463, 393, 463, 393, 1, 1470, 394, 395, 393, 1, 1471, 467, 1471, 463, 406, 463, 463, 393, 393, 1468, 1469, 464, 1468, 1469, 463, 393, 463, 393, 463, 393, 463, 393, 1, 470, 471, 470, 463, 395, 463, 463, 441, 393, 1472, 1472, 463, 393, 463, 393, 463, 393, 463, 393, 1, 470, 471, 470, 463, 395, 463, 463, 441, 393, 1473, 1473, 463, 393, 463, 393, 463, 393, 463, 393, 1, 470, 471, 470, 463, 395, 463, 463, 441, 393, 1474, 1474, 463, 393, 463, 393, 463, 393, 463, 393, 1, 470, 471, 470, 463, 395, 463, 463, 441, 393, 1475, 1475, 463, 393, 463, 393, 463, 393, 463, 393, 1, 1476, 1477, 1476, 395, 1478, 393, 1, 470, 471, 470, 463, 395, 463, 463, 441, 393, 1479, 1479, 463, 393, 463, 393, 463, 393, 463, 393, 1, 470, 471, 470, 463, 395, 463, 463, 441, 393, 1474, 1474, 463, 393, 463, 393, 463, 393, 463, 393, 1, 1480, 394, 395, 393, 1, 1481, 200, 201, 199, 1, 900, 901, 900, 902, 201, 902, 902, 903, 199, 904, 1482, 1482, 902, 199, 902, 199, 902, 199, 902, 199, 1, 900, 901, 900, 902, 201, 902, 902, 903, 199, 904, 1483, 1483, 902, 199, 902, 199, 902, 199, 902, 199, 1, 900, 901, 900, 902, 201, 902, 902, 903, 199, 904, 1484, 1484, 902, 199, 902, 199, 902, 199, 902, 199, 1, 900, 901, 900, 902, 201, 902, 902, 903, 199, 904, 1485, 1485, 902, 199, 902, 199, 902, 199, 902, 199, 1, 900, 901, 900, 902, 201, 902, 902, 903, 199, 904, 1486, 1486, 902, 199, 902, 199, 902, 199, 902, 199, 1, 900, 901, 900, 902, 201, 902, 902, 903, 199, 904, 1487, 1487, 902, 199, 902, 199, 902, 199, 902, 199, 1, 900, 901, 900, 902, 201, 902, 902, 903, 199, 904, 1488, 1488, 902, 199, 902, 199, 902, 199, 902, 199, 1, 1489, 1490, 1489, 902, 201, 902, 902, 903, 199, 1491, 902, 199, 902, 199, 902, 199, 902, 199, 1, 1492, 1493, 1492, 201, 907, 1491, 199, 1, 1494, 200, 201, 199, 1, 1495, 200, 1495, 201, 907, 1491, 199, 1, 1491, 1496, 1491, 1497, 265, 1497, 1497, 199, 199, 926, 1497, 199, 1497, 199, 1497, 199, 1497, 199, 1, 1498, 200, 201, 199, 1, 1499, 929, 1499, 1497, 265, 1497, 1497, 199, 199, 926, 1497, 199, 1497, 199, 1497, 199, 1497, 199, 1, 1500, 1501, 1500, 1502, 201, 1502, 1502, 1503, 199, 1502, 199, 1502, 199, 1502, 199, 1502, 199, 1, 1504, 200, 201, 199, 1, 261, 262, 201, 1506, 263, 199, 199, 261, 1505, 261, 1505, 261, 1505, 261, 199, 1, 261, 262, 201, 1508, 263, 1509, 199, 199, 261, 1507, 261, 1507, 261, 1507, 261, 199, 1, 261, 262, 201, 1508, 263, 1509, 199, 199, 261, 1510, 261, 1510, 261, 1510, 261, 199, 1, 261, 262, 201, 1508, 263, 1509, 199, 199, 261, 1511, 261, 1511, 261, 1511, 261, 199, 1, 261, 262, 201, 1508, 263, 1509, 199, 199, 261, 199, 1, 261, 262, 201, 1513, 263, 199, 199, 261, 1512, 261, 1505, 261, 1505, 261, 199, 1, 261, 262, 201, 1514, 1508, 263, 1509, 199, 199, 261, 1515, 261, 1507, 261, 1507, 261, 199, 1, 261, 262, 201, 263, 199, 199, 261, 1516, 261, 199, 1, 261, 262, 201, 1517, 263, 199, 199, 261, 1518, 261, 199, 1, 261, 262, 201, 263, 199, 199, 261, 1519, 261, 199, 1, 261, 262, 201, 1520, 263, 199, 199, 261, 1521, 261, 199, 1, 261, 262, 201, 263, 199, 199, 261, 1522, 261, 199, 1, 261, 262, 201, 263, 1509, 199, 199, 261, 1523, 261, 199, 1, 261, 262, 201, 263, 1509, 199, 199, 261, 1524, 261, 199, 1, 261, 262, 201, 263, 1509, 199, 199, 261, 199, 1, 897, 898, 897, 201, 883, 263, 199, 199, 261, 199, 1, 261, 262, 201, 1520, 263, 199, 199, 261, 1525, 261, 199, 1, 261, 262, 201, 1520, 263, 199, 199, 261, 199, 1, 261, 262, 201, 1517, 263, 199, 199, 261, 1526, 261, 199, 1, 261, 262, 201, 1517, 263, 199, 199, 261, 199, 1, 261, 262, 201, 1514, 1508, 263, 1509, 199, 199, 261, 1527, 261, 1510, 261, 1510, 261, 199, 1, 261, 262, 201, 1514, 1508, 263, 1509, 199, 199, 261, 1511, 261, 1511, 261, 1511, 261, 199, 1, 261, 262, 201, 1529, 263, 1509, 199, 199, 261, 1528, 261, 1528, 261, 1528, 261, 199, 1, 261, 262, 201, 1531, 263, 1509, 199, 199, 261, 1530, 261, 1530, 261, 1530, 261, 199, 1, 261, 262, 201, 1531, 263, 1509, 199, 199, 261, 1532, 261, 1532, 261, 1532, 261, 199, 1, 261, 262, 201, 1531, 263, 1509, 199, 199, 261, 1533, 261, 1533, 261, 1533, 261, 199, 1, 261, 262, 201, 1531, 263, 1509, 199, 199, 261, 199, 1, 261, 262, 201, 263, 199, 199, 261, 1534, 261, 1528, 261, 1528, 261, 199, 1, 261, 262, 201, 1514, 1531, 263, 1509, 199, 199, 261, 1535, 261, 1530, 261, 1530, 261, 199, 1, 261, 262, 201, 1514, 1531, 263, 1509, 199, 199, 261, 1536, 261, 1532, 261, 1532, 261, 199, 1, 261, 262, 201, 1514, 1531, 263, 1509, 199, 199, 261, 1533, 261, 1533, 261, 1533, 261, 199, 1, 261, 262, 201, 263, 199, 199, 261, 1537, 261, 199, 1, 261, 262, 201, 1514, 263, 199, 199, 261, 1538, 261, 199, 1, 261, 262, 201, 1514, 263, 199, 199, 261, 1539, 261, 199, 1, 261, 262, 201, 1514, 263, 199, 199, 261, 199, 1, 261, 262, 201, 1513, 263, 199, 199, 261, 199, 1, 1540, 200, 201, 199, 1, 880, 881, 880, 882, 201, 882, 882, 883, 261, 884, 1541, 263, 1541, 882, 199, 199, 261, 882, 261, 882, 261, 882, 261, 199, 1, 880, 881, 880, 882, 201, 882, 882, 883, 261, 884, 1542, 263, 1542, 882, 199, 199, 261, 882, 261, 882, 261, 882, 261, 199, 1, 880, 881, 880, 882, 201, 882, 882, 883, 261, 884, 1543, 263, 1543, 882, 199, 199, 261, 882, 261, 882, 261, 882, 261, 199, 1, 880, 881, 880, 882, 201, 882, 882, 883, 261, 884, 1544, 263, 1544, 882, 199, 199, 261, 882, 261, 882, 261, 882, 261, 199, 1, 880, 881, 880, 882, 201, 882, 882, 883, 261, 884, 1545, 263, 1545, 882, 199, 199, 261, 882, 261, 882, 261, 882, 261, 199, 1, 880, 881, 880, 882, 201, 882, 882, 883, 261, 884, 1546, 263, 1546, 882, 199, 199, 261, 882, 261, 882, 261, 882, 261, 199, 1, 880, 881, 880, 882, 201, 882, 882, 883, 261, 884, 1547, 263, 1547, 882, 199, 199, 261, 882, 261, 882, 261, 882, 261, 199, 1, 880, 881, 880, 882, 201, 882, 882, 883, 261, 884, 1548, 263, 1548, 882, 199, 199, 261, 882, 261, 882, 261, 882, 261, 199, 1, 1549, 1550, 1549, 882, 201, 882, 882, 883, 261, 1551, 263, 882, 199, 199, 261, 882, 261, 882, 261, 882, 261, 199, 1, 1552, 1553, 1552, 201, 866, 1551, 263, 199, 199, 261, 199, 1, 1554, 200, 201, 199, 1, 1555, 262, 1555, 201, 866, 1551, 263, 199, 199, 261, 199, 1, 1551, 1556, 1551, 1557, 265, 1557, 1557, 261, 261, 891, 263, 1557, 199, 199, 261, 1557, 261, 1557, 261, 1557, 261, 199, 1, 1558, 200, 201, 199, 1, 1559, 894, 1559, 1557, 265, 1557, 1557, 261, 261, 891, 263, 1557, 199, 199, 261, 1557, 261, 1557, 261, 1557, 261, 199, 1, 1560, 1561, 1560, 1562, 201, 1562, 1562, 1563, 261, 263, 1562, 199, 199, 261, 1562, 261, 1562, 261, 1562, 261, 199, 1, 1564, 200, 201, 199, 1, 880, 881, 880, 882, 201, 882, 882, 883, 261, 884, 1565, 263, 1565, 882, 199, 199, 261, 882, 261, 882, 261, 882, 261, 199, 1, 880, 881, 880, 882, 201, 882, 882, 883, 261, 884, 1566, 263, 1566, 882, 199, 199, 261, 882, 261, 882, 261, 882, 261, 199, 1, 880, 881, 880, 882, 201, 882, 882, 883, 261, 884, 1567, 263, 1567, 882, 199, 199, 261, 882, 261, 882, 261, 882, 261, 199, 1, 880, 881, 880, 882, 201, 882, 882, 883, 261, 884, 1568, 263, 1568, 882, 199, 199, 261, 882, 261, 882, 261, 882, 261, 199, 1, 880, 881, 880, 882, 201, 882, 882, 883, 261, 884, 1569, 263, 1569, 882, 199, 199, 261, 882, 261, 882, 261, 882, 261, 199, 1, 1570, 1571, 1570, 882, 201, 882, 882, 883, 261, 1572, 263, 882, 199, 199, 261, 882, 261, 882, 261, 882, 261, 199, 1, 1573, 1574, 1573, 201, 866, 1572, 263, 199, 199, 261, 199, 1, 1575, 200, 201, 199, 1, 1576, 262, 1576, 201, 866, 1572, 263, 199, 199, 261, 199, 1, 1572, 1577, 1572, 890, 1339, 890, 890, 261, 261, 891, 263, 890, 199, 199, 261, 890, 261, 890, 261, 890, 261, 199, 1, 1578, 200, 201, 199, 1, 1579, 1580, 1579, 890, 1339, 890, 890, 261, 261, 891, 263, 890, 199, 199, 261, 890, 261, 890, 261, 890, 261, 199, 1, 1581, 200, 201, 199, 1, 1582, 262, 1582, 1339, 263, 199, 199, 261, 199, 1, 1583, 200, 201, 199, 1, 880, 881, 880, 882, 201, 882, 882, 883, 261, 884, 1584, 263, 1584, 882, 199, 199, 261, 882, 261, 882, 261, 882, 261, 199, 1, 880, 881, 880, 882, 201, 882, 882, 883, 261, 884, 1585, 263, 1585, 882, 199, 199, 261, 882, 261, 882, 261, 882, 261, 199, 1, 880, 881, 880, 882, 201, 882, 882, 883, 261, 884, 1586, 263, 1586, 882, 199, 199, 261, 882, 261, 882, 261, 882, 261, 199, 1, 880, 881, 880, 882, 201, 882, 882, 883, 261, 884, 1587, 263, 1587, 882, 199, 199, 261, 882, 261, 882, 261, 882, 261, 199, 1, 1588, 1589, 1588, 882, 201, 882, 882, 883, 261, 1590, 263, 882, 199, 199, 261, 882, 261, 882, 261, 882, 261, 199, 1, 1591, 1592, 1591, 201, 866, 1590, 263, 199, 199, 261, 199, 1, 1593, 200, 201, 199, 1, 1594, 262, 1594, 201, 866, 1590, 263, 199, 199, 261, 199, 1, 1595, 1596, 1595, 890, 952, 890, 890, 261, 261, 891, 263, 890, 199, 199, 261, 890, 261, 890, 261, 890, 261, 199, 1, 1597, 200, 201, 199, 1, 1598, 1599, 1598, 890, 952, 890, 890, 261, 261, 891, 263, 890, 199, 199, 261, 890, 261, 890, 261, 890, 261, 199, 1, 1600, 200, 201, 199, 1, 1601, 262, 1601, 958, 263, 199, 199, 261, 199, 1, 1602, 200, 201, 199, 1, 880, 881, 880, 882, 201, 882, 882, 883, 261, 884, 1603, 263, 1603, 882, 199, 199, 261, 882, 261, 882, 261, 882, 261, 199, 1, 880, 881, 880, 882, 201, 882, 882, 883, 261, 884, 1604, 263, 1604, 882, 199, 199, 261, 882, 261, 882, 261, 882, 261, 199, 1, 880, 881, 880, 882, 201, 882, 882, 883, 261, 884, 1605, 263, 1605, 882, 199, 199, 261, 882, 261, 882, 261, 882, 261, 199, 1, 880, 881, 880, 882, 201, 882, 882, 883, 261, 884, 1606, 263, 1606, 882, 199, 199, 261, 882, 261, 882, 261, 882, 261, 199, 1, 880, 881, 880, 882, 201, 882, 882, 883, 261, 884, 1607, 263, 1607, 882, 199, 199, 261, 882, 261, 882, 261, 882, 261, 199, 1, 1608, 1609, 1608, 882, 201, 882, 882, 883, 261, 1610, 263, 882, 199, 199, 261, 882, 261, 882, 261, 882, 261, 199, 1, 1611, 1612, 1611, 201, 866, 1610, 263, 199, 199, 261, 199, 1, 1613, 200, 201, 199, 1, 1614, 262, 1614, 201, 866, 1610, 263, 199, 199, 261, 199, 1, 1615, 1616, 1615, 890, 1009, 890, 890, 261, 261, 891, 263, 890, 199, 199, 261, 890, 261, 890, 261, 890, 261, 199, 1, 1617, 200, 201, 199, 1, 1618, 1619, 1618, 890, 1009, 890, 890, 261, 261, 891, 263, 890, 199, 199, 261, 890, 261, 890, 261, 890, 261, 199, 1, 1620, 200, 201, 199, 1, 1621, 262, 1621, 1015, 263, 199, 199, 261, 199, 1, 1622, 200, 201, 199, 1, 880, 881, 880, 882, 201, 882, 882, 883, 261, 884, 1623, 263, 1623, 882, 199, 199, 261, 882, 261, 882, 261, 882, 261, 199, 1, 880, 881, 880, 882, 201, 882, 882, 883, 261, 884, 1624, 263, 1624, 882, 199, 199, 261, 882, 261, 882, 261, 882, 261, 199, 1, 1625, 1626, 1625, 882, 201, 882, 882, 883, 261, 1627, 263, 882, 199, 199, 261, 882, 261, 882, 261, 882, 261, 199, 1, 1628, 1629, 1628, 201, 866, 1627, 263, 199, 199, 261, 199, 1, 1630, 200, 201, 199, 1, 1631, 262, 1631, 201, 866, 1627, 263, 199, 199, 261, 199, 1, 1627, 1632, 1627, 890, 201, 890, 890, 261, 261, 891, 263, 890, 199, 199, 261, 890, 261, 890, 261, 890, 261, 199, 1, 1633, 200, 201, 199, 1, 1634, 262, 1634, 890, 201, 890, 890, 261, 261, 891, 263, 890, 199, 199, 261, 890, 261, 890, 261, 890, 261, 199, 1, 1635, 200, 201, 199, 1, 880, 881, 880, 882, 201, 882, 882, 883, 261, 884, 1636, 263, 1636, 882, 199, 199, 261, 882, 261, 882, 261, 882, 261, 199, 1, 880, 881, 880, 882, 201, 882, 882, 883, 261, 884, 1637, 263, 1637, 882, 199, 199, 261, 882, 261, 882, 261, 882, 261, 199, 1, 880, 881, 880, 882, 201, 882, 882, 883, 261, 884, 1638, 263, 1638, 882, 199, 199, 261, 882, 261, 882, 261, 882, 261, 199, 1, 880, 881, 880, 882, 201, 882, 882, 883, 261, 884, 1639, 263, 1639, 882, 199, 199, 261, 882, 261, 882, 261, 882, 261, 199, 1, 1640, 1641, 1640, 882, 201, 882, 882, 883, 261, 1642, 263, 882, 199, 199, 261, 882, 261, 882, 261, 882, 261, 199, 1, 1643, 1644, 1643, 201, 866, 1642, 263, 199, 199, 261, 199, 1, 1645, 200, 201, 199, 1, 1646, 262, 1646, 201, 866, 1642, 263, 199, 199, 261, 199, 1, 1647, 1648, 1647, 890, 1048, 890, 890, 261, 261, 891, 263, 890, 199, 199, 261, 890, 261, 890, 261, 890, 261, 199, 1, 1649, 200, 201, 199, 1, 1650, 1651, 1650, 890, 1048, 890, 890, 261, 261, 891, 263, 890, 199, 199, 261, 890, 261, 890, 261, 890, 261, 199, 1, 1652, 200, 201, 199, 1, 1653, 262, 1653, 1054, 263, 199, 199, 261, 199, 1, 1654, 200, 201, 199, 1, 880, 881, 880, 882, 201, 882, 882, 883, 261, 884, 1655, 263, 1655, 882, 199, 199, 261, 882, 261, 882, 261, 882, 261, 199, 1, 880, 881, 880, 882, 201, 882, 882, 883, 261, 884, 1656, 263, 1656, 882, 199, 199, 261, 882, 261, 882, 261, 882, 261, 199, 1, 880, 881, 880, 882, 201, 882, 882, 883, 261, 884, 1657, 263, 1657, 882, 199, 199, 261, 882, 261, 882, 261, 882, 261, 199, 1, 880, 881, 880, 882, 201, 882, 882, 883, 261, 884, 1658, 263, 1658, 882, 199, 199, 261, 882, 261, 882, 261, 882, 261, 199, 1, 1659, 1660, 1659, 882, 201, 882, 882, 883, 261, 1661, 263, 882, 199, 199, 261, 882, 261, 882, 261, 882, 261, 199, 1, 1662, 1663, 1662, 201, 866, 1661, 263, 199, 199, 261, 199, 1, 1664, 200, 201, 199, 1, 1665, 262, 1665, 201, 866, 1661, 263, 199, 199, 261, 199, 1, 1661, 1666, 1661, 890, 265, 890, 890, 261, 261, 1667, 1668, 891, 263, 1667, 1668, 890, 199, 199, 261, 890, 261, 890, 261, 890, 261, 199, 1, 1669, 200, 201, 199, 1, 1670, 894, 1670, 890, 265, 890, 890, 261, 261, 1667, 1668, 891, 263, 1667, 1668, 890, 199, 199, 261, 890, 261, 890, 261, 890, 261, 199, 1, 897, 898, 897, 890, 201, 890, 890, 883, 261, 1671, 263, 1671, 890, 199, 199, 261, 890, 261, 890, 261, 890, 261, 199, 1, 897, 898, 897, 890, 201, 890, 890, 883, 261, 1672, 263, 1672, 890, 199, 199, 261, 890, 261, 890, 261, 890, 261, 199, 1, 897, 898, 897, 890, 201, 890, 890, 883, 261, 1673, 263, 1673, 890, 199, 199, 261, 890, 261, 890, 261, 890, 261, 199, 1, 897, 898, 897, 890, 201, 890, 890, 883, 261, 1674, 263, 1674, 890, 199, 199, 261, 890, 261, 890, 261, 890, 261, 199, 1, 1675, 1676, 1675, 201, 1677, 263, 199, 199, 261, 199, 1, 897, 898, 897, 890, 201, 890, 890, 883, 261, 1678, 263, 1678, 890, 199, 199, 261, 890, 261, 890, 261, 890, 261, 199, 1, 897, 898, 897, 890, 201, 890, 890, 883, 261, 1673, 263, 1673, 890, 199, 199, 261, 890, 261, 890, 261, 890, 261, 199, 1, 1679, 200, 201, 199, 1, 1680, 26, 21, 1, 689, 690, 689, 691, 171, 691, 691, 692, 169, 693, 1681, 172, 1681, 691, 21, 21, 169, 691, 169, 691, 169, 691, 169, 21, 1, 689, 690, 689, 691, 171, 691, 691, 692, 169, 693, 1682, 172, 1682, 691, 21, 21, 169, 691, 169, 691, 169, 691, 169, 21, 1, 689, 690, 689, 691, 171, 691, 691, 692, 169, 693, 1683, 172, 1683, 691, 21, 21, 169, 691, 169, 691, 169, 691, 169, 21, 1, 689, 690, 689, 691, 171, 691, 691, 692, 169, 693, 1684, 172, 1684, 691, 21, 21, 169, 691, 169, 691, 169, 691, 169, 21, 1, 1685, 1686, 1685, 691, 171, 691, 691, 692, 169, 1687, 172, 691, 21, 21, 169, 691, 169, 691, 169, 691, 169, 21, 1, 1688, 1689, 1688, 171, 675, 1687, 172, 21, 21, 169, 21, 1, 1690, 26, 21, 1, 1691, 170, 1691, 171, 675, 1687, 172, 21, 21, 169, 21, 1, 1692, 1693, 1692, 699, 1694, 699, 699, 169, 169, 701, 172, 699, 21, 21, 169, 699, 169, 699, 169, 699, 169, 21, 1, 1695, 26, 21, 1, 1696, 1697, 1696, 699, 1694, 699, 699, 169, 169, 701, 172, 699, 21, 21, 169, 699, 169, 699, 169, 699, 169, 21, 1, 1698, 26, 21, 1, 1699, 170, 1699, 1700, 172, 21, 21, 169, 21, 1, 1701, 1702, 1701, 229, 1703, 230, 21, 21, 227, 21, 1, 1704, 26, 21, 1, 689, 690, 689, 691, 171, 691, 691, 692, 169, 693, 1705, 172, 1705, 691, 21, 21, 169, 691, 169, 691, 169, 691, 169, 21, 1, 689, 690, 689, 691, 171, 691, 691, 692, 169, 693, 1706, 172, 1706, 691, 21, 21, 169, 691, 169, 691, 169, 691, 169, 21, 1, 689, 690, 689, 691, 171, 691, 691, 692, 169, 693, 1707, 172, 1707, 691, 21, 21, 169, 691, 169, 691, 169, 691, 169, 21, 1, 689, 690, 689, 691, 171, 691, 691, 692, 169, 693, 1708, 172, 1708, 691, 21, 21, 169, 691, 169, 691, 169, 691, 169, 21, 1, 1709, 1710, 1709, 691, 171, 691, 691, 692, 169, 1711, 172, 691, 21, 21, 169, 691, 169, 691, 169, 691, 169, 21, 1, 1712, 1713, 1712, 171, 675, 1711, 172, 21, 21, 169, 21, 1, 1714, 26, 21, 1, 1715, 170, 1715, 171, 675, 1711, 172, 21, 21, 169, 21, 1, 1711, 1716, 1711, 699, 700, 699, 699, 169, 169, 1717, 1718, 701, 172, 1717, 1718, 699, 21, 21, 169, 699, 169, 699, 169, 699, 169, 21, 1, 1719, 26, 21, 1, 1720, 704, 1720, 699, 700, 699, 699, 169, 169, 1717, 1718, 701, 172, 1717, 1718, 699, 21, 21, 169, 699, 169, 699, 169, 699, 169, 21, 1, 710, 711, 710, 699, 171, 699, 699, 692, 169, 1721, 172, 1721, 699, 21, 21, 169, 699, 169, 699, 169, 699, 169, 21, 1, 710, 711, 710, 699, 171, 699, 699, 692, 169, 1722, 172, 1722, 699, 21, 21, 169, 699, 169, 699, 169, 699, 169, 21, 1, 710, 711, 710, 699, 171, 699, 699, 692, 169, 1723, 172, 1723, 699, 21, 21, 169, 699, 169, 699, 169, 699, 169, 21, 1, 710, 711, 710, 699, 171, 699, 699, 692, 169, 1724, 172, 1724, 699, 21, 21, 169, 699, 169, 699, 169, 699, 169, 21, 1, 1725, 1726, 1725, 171, 1727, 172, 21, 21, 169, 21, 1, 710, 711, 710, 699, 171, 699, 699, 692, 169, 1728, 172, 1728, 699, 21, 21, 169, 699, 169, 699, 169, 699, 169, 21, 1, 710, 711, 710, 699, 171, 699, 699, 692, 169, 1723, 172, 1723, 699, 21, 21, 169, 699, 169, 699, 169, 699, 169, 21, 1, 1729, 26, 21, 1, 1730, 26, 21, 1, 516, 517, 516, 518, 108, 518, 518, 519, 106, 520, 1731, 109, 1731, 518, 21, 21, 106, 518, 106, 518, 106, 518, 106, 21, 1, 516, 517, 516, 518, 108, 518, 518, 519, 106, 520, 1732, 109, 1732, 518, 21, 21, 106, 518, 106, 518, 106, 518, 106, 21, 1, 1733, 1734, 1733, 518, 108, 518, 518, 519, 106, 1735, 109, 518, 21, 21, 106, 518, 106, 518, 106, 518, 106, 21, 1, 1736, 1737, 1736, 108, 499, 1735, 109, 21, 21, 106, 21, 1, 1738, 26, 21, 1, 1739, 107, 1739, 108, 499, 1735, 109, 21, 21, 106, 21, 1, 1735, 1740, 1735, 526, 1741, 526, 526, 106, 106, 528, 109, 526, 21, 21, 106, 526, 106, 526, 106, 526, 106, 21, 1, 1742, 26, 21, 1, 1743, 1744, 1743, 526, 1741, 526, 526, 106, 106, 528, 109, 526, 21, 21, 106, 526, 106, 526, 106, 526, 106, 21, 1, 1745, 26, 21, 1, 1746, 107, 1746, 1741, 109, 21, 21, 106, 21, 1, 1747, 1748, 1747, 197, 1749, 198, 194, 194, 195, 194, 1, 1750, 26, 21, 1, 516, 517, 516, 518, 108, 518, 518, 519, 106, 520, 1751, 109, 1751, 518, 21, 21, 106, 518, 106, 518, 106, 518, 106, 21, 1, 516, 517, 516, 518, 108, 518, 518, 519, 106, 520, 1752, 109, 1752, 518, 21, 21, 106, 518, 106, 518, 106, 518, 106, 21, 1, 516, 517, 516, 518, 108, 518, 518, 519, 106, 520, 1753, 109, 1753, 518, 21, 21, 106, 518, 106, 518, 106, 518, 106, 21, 1, 516, 517, 516, 518, 108, 518, 518, 519, 106, 520, 1754, 109, 1754, 518, 21, 21, 106, 518, 106, 518, 106, 518, 106, 21, 1, 1755, 1756, 1755, 518, 108, 518, 518, 519, 106, 1757, 109, 518, 21, 21, 106, 518, 106, 518, 106, 518, 106, 21, 1, 1758, 1759, 1758, 108, 499, 1757, 109, 21, 21, 106, 21, 1, 1760, 26, 21, 1, 1761, 107, 1761, 108, 499, 1757, 109, 21, 21, 106, 21, 1, 1762, 1763, 1762, 526, 1764, 526, 526, 106, 106, 528, 109, 526, 21, 21, 106, 526, 106, 526, 106, 526, 106, 21, 1, 1765, 26, 21, 1, 1766, 1767, 1766, 526, 1764, 526, 526, 106, 106, 528, 109, 526, 21, 21, 106, 526, 106, 526, 106, 526, 106, 21, 1, 1768, 26, 21, 1, 1769, 107, 1769, 1770, 109, 21, 21, 106, 21, 1, 1771, 1772, 1771, 229, 1773, 230, 21, 21, 227, 21, 1, 1774, 26, 21, 1, 516, 517, 516, 518, 108, 518, 518, 519, 106, 520, 1775, 109, 1775, 518, 21, 21, 106, 518, 106, 518, 106, 518, 106, 21, 1, 516, 517, 516, 518, 108, 518, 518, 519, 106, 520, 1776, 109, 1776, 518, 21, 21, 106, 518, 106, 518, 106, 518, 106, 21, 1, 516, 517, 516, 518, 108, 518, 518, 519, 106, 520, 1777, 109, 1777, 518, 21, 21, 106, 518, 106, 518, 106, 518, 106, 21, 1, 516, 517, 516, 518, 108, 518, 518, 519, 106, 520, 1778, 109, 1778, 518, 21, 21, 106, 518, 106, 518, 106, 518, 106, 21, 1, 1779, 1780, 1779, 518, 108, 518, 518, 519, 106, 1781, 109, 518, 21, 21, 106, 518, 106, 518, 106, 518, 106, 21, 1, 1782, 1783, 1782, 108, 499, 1781, 109, 21, 21, 106, 21, 1, 1784, 26, 21, 1, 1785, 107, 1785, 108, 499, 1781, 109, 21, 21, 106, 21, 1, 1781, 1786, 1781, 526, 527, 526, 526, 106, 106, 1787, 1788, 528, 109, 1787, 1788, 526, 21, 21, 106, 526, 106, 526, 106, 526, 106, 21, 1, 1789, 26, 21, 1, 1790, 531, 1790, 526, 527, 526, 526, 106, 106, 1787, 1788, 528, 109, 1787, 1788, 526, 21, 21, 106, 526, 106, 526, 106, 526, 106, 21, 1, 537, 538, 537, 526, 108, 526, 526, 519, 106, 1791, 109, 1791, 526, 21, 21, 106, 526, 106, 526, 106, 526, 106, 21, 1, 537, 538, 537, 526, 108, 526, 526, 519, 106, 1792, 109, 1792, 526, 21, 21, 106, 526, 106, 526, 106, 526, 106, 21, 1, 537, 538, 537, 526, 108, 526, 526, 519, 106, 1793, 109, 1793, 526, 21, 21, 106, 526, 106, 526, 106, 526, 106, 21, 1, 537, 538, 537, 526, 108, 526, 526, 519, 106, 1794, 109, 1794, 526, 21, 21, 106, 526, 106, 526, 106, 526, 106, 21, 1, 1795, 1796, 1795, 108, 1797, 109, 21, 21, 106, 21, 1, 537, 538, 537, 526, 108, 526, 526, 519, 106, 1798, 109, 1798, 526, 21, 21, 106, 526, 106, 526, 106, 526, 106, 21, 1, 537, 538, 537, 526, 108, 526, 526, 519, 106, 1793, 109, 1793, 526, 21, 21, 106, 526, 106, 526, 106, 526, 106, 21, 1, 1799, 26, 21, 1, 1800, 394, 395, 393, 1, 438, 439, 438, 440, 395, 440, 440, 441, 393, 442, 1801, 1801, 440, 393, 440, 393, 440, 393, 440, 393, 1, 438, 439, 438, 440, 395, 440, 440, 441, 393, 442, 1802, 1802, 440, 393, 440, 393, 440, 393, 440, 393, 1, 438, 439, 438, 440, 395, 440, 440, 441, 393, 442, 1803, 1803, 440, 393, 440, 393, 440, 393, 440, 393, 1, 438, 439, 438, 440, 395, 440, 440, 441, 393, 442, 1804, 1804, 440, 393, 440, 393, 440, 393, 440, 393, 1, 1805, 1806, 1805, 440, 395, 440, 440, 441, 393, 1807, 440, 393, 440, 393, 440, 393, 440, 393, 1, 1808, 1809, 1808, 395, 445, 1807, 393, 1, 1810, 394, 395, 393, 1, 1811, 394, 1811, 395, 445, 1807, 393, 1, 1807, 1812, 1807, 463, 395, 463, 463, 393, 393, 464, 463, 393, 463, 393, 463, 393, 463, 393, 1, 1813, 394, 395, 393, 1, 1814, 394, 1814, 463, 395, 463, 463, 393, 393, 464, 463, 393, 463, 393, 463, 393, 463, 393, 1, 1815, 394, 395, 393, 1, 438, 439, 438, 440, 395, 440, 440, 441, 393, 442, 1816, 1816, 440, 393, 440, 393, 440, 393, 440, 393, 1, 438, 439, 438, 440, 395, 440, 440, 441, 393, 442, 1817, 1817, 440, 393, 440, 393, 440, 393, 440, 393, 1, 438, 439, 438, 440, 395, 440, 440, 441, 393, 442, 1818, 1818, 440, 393, 440, 393, 440, 393, 440, 393, 1, 438, 439, 438, 440, 395, 440, 440, 441, 393, 442, 1819, 1819, 440, 393, 440, 393, 440, 393, 440, 393, 1, 438, 439, 438, 440, 395, 440, 440, 441, 393, 442, 1820, 1820, 440, 393, 440, 393, 440, 393, 440, 393, 1, 438, 439, 438, 440, 395, 440, 440, 441, 393, 442, 1821, 1821, 440, 393, 440, 393, 440, 393, 440, 393, 1, 438, 439, 438, 440, 395, 440, 440, 441, 393, 442, 1822, 1822, 440, 393, 440, 393, 440, 393, 440, 393, 1, 1823, 1824, 1823, 440, 395, 440, 440, 441, 393, 1825, 440, 393, 440, 393, 440, 393, 440, 393, 1, 1826, 1827, 1826, 395, 445, 1825, 393, 1, 1828, 394, 395, 393, 1, 1829, 394, 1829, 395, 445, 1825, 393, 1, 1825, 1830, 1825, 1831, 406, 1831, 1831, 393, 393, 464, 1831, 393, 1831, 393, 1831, 393, 1831, 393, 1, 1832, 394, 395, 393, 1, 1833, 467, 1833, 1831, 406, 1831, 1831, 393, 393, 464, 1831, 393, 1831, 393, 1831, 393, 1831, 393, 1, 1834, 1835, 1834, 1836, 395, 1836, 1836, 1837, 393, 1836, 393, 1836, 393, 1836, 393, 1836, 393, 1, 1838, 394, 395, 393, 1, 399, 404, 395, 1840, 401, 393, 393, 399, 1839, 399, 1839, 399, 1839, 399, 393, 1, 399, 404, 395, 1842, 401, 1843, 393, 393, 399, 1841, 399, 1841, 399, 1841, 399, 393, 1, 399, 404, 395, 1842, 401, 1843, 393, 393, 399, 1844, 399, 1844, 399, 1844, 399, 393, 1, 399, 404, 395, 1842, 401, 1843, 393, 393, 399, 1845, 399, 1845, 399, 1845, 399, 393, 1, 399, 404, 395, 1842, 401, 1843, 393, 393, 399, 393, 1, 399, 404, 395, 1847, 401, 393, 393, 399, 1846, 399, 1839, 399, 1839, 399, 393, 1, 399, 404, 395, 1848, 1842, 401, 1843, 393, 393, 399, 1849, 399, 1841, 399, 1841, 399, 393, 1, 399, 404, 395, 401, 393, 393, 399, 1850, 399, 393, 1, 399, 404, 395, 1851, 401, 393, 393, 399, 1852, 399, 393, 1, 399, 404, 395, 401, 393, 393, 399, 1853, 399, 393, 1, 399, 404, 395, 1854, 401, 393, 393, 399, 1855, 399, 393, 1, 399, 404, 395, 401, 393, 393, 399, 1856, 399, 393, 1, 399, 404, 395, 401, 1843, 393, 393, 399, 1857, 399, 393, 1, 399, 404, 395, 401, 1843, 393, 393, 399, 1858, 399, 393, 1, 399, 404, 395, 401, 1843, 393, 393, 399, 393, 1, 435, 436, 435, 395, 421, 401, 393, 393, 399, 393, 1, 399, 404, 395, 1854, 401, 393, 393, 399, 1859, 399, 393, 1, 399, 404, 395, 1854, 401, 393, 393, 399, 393, 1, 399, 404, 395, 1851, 401, 393, 393, 399, 1860, 399, 393, 1, 399, 404, 395, 1851, 401, 393, 393, 399, 393, 1, 399, 404, 395, 1848, 1842, 401, 1843, 393, 393, 399, 1861, 399, 1844, 399, 1844, 399, 393, 1, 399, 404, 395, 1848, 1842, 401, 1843, 393, 393, 399, 1845, 399, 1845, 399, 1845, 399, 393, 1, 399, 404, 395, 1863, 401, 1843, 393, 393, 399, 1862, 399, 1862, 399, 1862, 399, 393, 1, 399, 404, 395, 1865, 401, 1843, 393, 393, 399, 1864, 399, 1864, 399, 1864, 399, 393, 1, 399, 404, 395, 1865, 401, 1843, 393, 393, 399, 1866, 399, 1866, 399, 1866, 399, 393, 1, 399, 404, 395, 1865, 401, 1843, 393, 393, 399, 1867, 399, 1867, 399, 1867, 399, 393, 1, 399, 404, 395, 1865, 401, 1843, 393, 393, 399, 393, 1, 399, 404, 395, 401, 393, 393, 399, 1868, 399, 1862, 399, 1862, 399, 393, 1, 399, 404, 395, 1848, 1865, 401, 1843, 393, 393, 399, 1869, 399, 1864, 399, 1864, 399, 393, 1, 399, 404, 395, 1848, 1865, 401, 1843, 393, 393, 399, 1870, 399, 1866, 399, 1866, 399, 393, 1, 399, 404, 395, 1848, 1865, 401, 1843, 393, 393, 399, 1867, 399, 1867, 399, 1867, 399, 393, 1, 399, 404, 395, 401, 393, 393, 399, 1871, 399, 393, 1, 399, 404, 395, 1848, 401, 393, 393, 399, 1872, 399, 393, 1, 399, 404, 395, 1848, 401, 393, 393, 399, 1873, 399, 393, 1, 399, 404, 395, 1848, 401, 393, 393, 399, 393, 1, 399, 404, 395, 1847, 401, 393, 393, 399, 393, 1, 1874, 394, 395, 393, 1, 418, 419, 418, 420, 395, 420, 420, 421, 399, 422, 1875, 401, 1875, 420, 393, 393, 399, 420, 399, 420, 399, 420, 399, 393, 1, 418, 419, 418, 420, 395, 420, 420, 421, 399, 422, 1876, 401, 1876, 420, 393, 393, 399, 420, 399, 420, 399, 420, 399, 393, 1, 418, 419, 418, 420, 395, 420, 420, 421, 399, 422, 1877, 401, 1877, 420, 393, 393, 399, 420, 399, 420, 399, 420, 399, 393, 1, 418, 419, 418, 420, 395, 420, 420, 421, 399, 422, 1878, 401, 1878, 420, 393, 393, 399, 420, 399, 420, 399, 420, 399, 393, 1, 418, 419, 418, 420, 395, 420, 420, 421, 399, 422, 1879, 401, 1879, 420, 393, 393, 399, 420, 399, 420, 399, 420, 399, 393, 1, 418, 419, 418, 420, 395, 420, 420, 421, 399, 422, 1880, 401, 1880, 420, 393, 393, 399, 420, 399, 420, 399, 420, 399, 393, 1, 418, 419, 418, 420, 395, 420, 420, 421, 399, 422, 1881, 401, 1881, 420, 393, 393, 399, 420, 399, 420, 399, 420, 399, 393, 1, 418, 419, 418, 420, 395, 420, 420, 421, 399, 422, 1882, 401, 1882, 420, 393, 393, 399, 420, 399, 420, 399, 420, 399, 393, 1, 1883, 1884, 1883, 420, 395, 420, 420, 421, 399, 1885, 401, 420, 393, 393, 399, 420, 399, 420, 399, 420, 399, 393, 1, 1886, 1887, 1886, 395, 400, 1885, 401, 393, 393, 399, 393, 1, 1888, 394, 395, 393, 1, 1889, 404, 1889, 395, 400, 1885, 401, 393, 393, 399, 393, 1, 1885, 1890, 1885, 1891, 406, 1891, 1891, 399, 399, 429, 401, 1891, 393, 393, 399, 1891, 399, 1891, 399, 1891, 399, 393, 1, 1892, 394, 395, 393, 1, 1893, 432, 1893, 1891, 406, 1891, 1891, 399, 399, 429, 401, 1891, 393, 393, 399, 1891, 399, 1891, 399, 1891, 399, 393, 1, 1894, 1895, 1894, 1896, 395, 1896, 1896, 1897, 399, 401, 1896, 393, 393, 399, 1896, 399, 1896, 399, 1896, 399, 393, 1, 1898, 394, 395, 393, 1, 418, 419, 418, 420, 395, 420, 420, 421, 399, 422, 1899, 401, 1899, 420, 393, 393, 399, 420, 399, 420, 399, 420, 399, 393, 1, 418, 419, 418, 420, 395, 420, 420, 421, 399, 422, 1900, 401, 1900, 420, 393, 393, 399, 420, 399, 420, 399, 420, 399, 393, 1, 418, 419, 418, 420, 395, 420, 420, 421, 399, 422, 1901, 401, 1901, 420, 393, 393, 399, 420, 399, 420, 399, 420, 399, 393, 1, 418, 419, 418, 420, 395, 420, 420, 421, 399, 422, 1902, 401, 1902, 420, 393, 393, 399, 420, 399, 420, 399, 420, 399, 393, 1, 418, 419, 418, 420, 395, 420, 420, 421, 399, 422, 1903, 401, 1903, 420, 393, 393, 399, 420, 399, 420, 399, 420, 399, 393, 1, 1904, 1905, 1904, 420, 395, 420, 420, 421, 399, 1906, 401, 420, 393, 393, 399, 420, 399, 420, 399, 420, 399, 393, 1, 1907, 1908, 1907, 395, 400, 1906, 401, 393, 393, 399, 393, 1, 1909, 394, 395, 393, 1, 1910, 404, 1910, 395, 400, 1906, 401, 393, 393, 399, 393, 1, 1906, 1911, 1906, 428, 395, 428, 428, 399, 399, 429, 401, 428, 393, 393, 399, 428, 399, 428, 399, 428, 399, 393, 1, 1912, 394, 395, 393, 1, 1913, 404, 1913, 428, 395, 428, 428, 399, 399, 429, 401, 428, 393, 393, 399, 428, 399, 428, 399, 428, 399, 393, 1, 1914, 394, 395, 393, 1, 418, 419, 418, 420, 395, 420, 420, 421, 399, 422, 1915, 401, 1915, 420, 393, 393, 399, 420, 399, 420, 399, 420, 399, 393, 1, 418, 419, 418, 420, 395, 420, 420, 421, 399, 422, 1916, 401, 1916, 420, 393, 393, 399, 420, 399, 420, 399, 420, 399, 393, 1, 418, 419, 418, 420, 395, 420, 420, 421, 399, 422, 1917, 401, 1917, 420, 393, 393, 399, 420, 399, 420, 399, 420, 399, 393, 1, 418, 419, 418, 420, 395, 420, 420, 421, 399, 422, 1918, 401, 1918, 420, 393, 393, 399, 420, 399, 420, 399, 420, 399, 393, 1, 1919, 1920, 1919, 420, 395, 420, 420, 421, 399, 1921, 401, 420, 393, 393, 399, 420, 399, 420, 399, 420, 399, 393, 1, 1922, 1923, 1922, 395, 400, 1921, 401, 393, 393, 399, 393, 1, 1924, 394, 395, 393, 1, 1925, 404, 1925, 395, 400, 1921, 401, 393, 393, 399, 393, 1, 1926, 1927, 1926, 428, 490, 428, 428, 399, 399, 429, 401, 428, 393, 393, 399, 428, 399, 428, 399, 428, 399, 393, 1, 1928, 394, 395, 393, 1, 1929, 1930, 1929, 428, 490, 428, 428, 399, 399, 429, 401, 428, 393, 393, 399, 428, 399, 428, 399, 428, 399, 393, 1, 1931, 394, 395, 393, 1, 1932, 404, 1932, 496, 401, 393, 393, 399, 393, 1, 1933, 394, 395, 393, 1, 418, 419, 418, 420, 395, 420, 420, 421, 399, 422, 1934, 401, 1934, 420, 393, 393, 399, 420, 399, 420, 399, 420, 399, 393, 1, 418, 419, 418, 420, 395, 420, 420, 421, 399, 422, 1935, 401, 1935, 420, 393, 393, 399, 420, 399, 420, 399, 420, 399, 393, 1, 418, 419, 418, 420, 395, 420, 420, 421, 399, 422, 1936, 401, 1936, 420, 393, 393, 399, 420, 399, 420, 399, 420, 399, 393, 1, 418, 419, 418, 420, 395, 420, 420, 421, 399, 422, 1937, 401, 1937, 420, 393, 393, 399, 420, 399, 420, 399, 420, 399, 393, 1, 418, 419, 418, 420, 395, 420, 420, 421, 399, 422, 1938, 401, 1938, 420, 393, 393, 399, 420, 399, 420, 399, 420, 399, 393, 1, 1939, 1940, 1939, 420, 395, 420, 420, 421, 399, 1941, 401, 420, 393, 393, 399, 420, 399, 420, 399, 420, 399, 393, 1, 1942, 1943, 1942, 395, 400, 1941, 401, 393, 393, 399, 393, 1, 1944, 394, 395, 393, 1, 1945, 404, 1945, 395, 400, 1941, 401, 393, 393, 399, 393, 1, 1946, 1947, 1946, 428, 1367, 428, 428, 399, 399, 429, 401, 428, 393, 393, 399, 428, 399, 428, 399, 428, 399, 393, 1, 1948, 394, 395, 393, 1, 1949, 1950, 1949, 428, 1367, 428, 428, 399, 399, 429, 401, 428, 393, 393, 399, 428, 399, 428, 399, 428, 399, 393, 1, 1951, 394, 395, 393, 1, 1952, 404, 1952, 1373, 401, 393, 393, 399, 393, 1, 1953, 394, 395, 393, 1, 418, 419, 418, 420, 395, 420, 420, 421, 399, 422, 1954, 401, 1954, 420, 393, 393, 399, 420, 399, 420, 399, 420, 399, 393, 1, 418, 419, 418, 420, 395, 420, 420, 421, 399, 422, 1955, 401, 1955, 420, 393, 393, 399, 420, 399, 420, 399, 420, 399, 393, 1, 1956, 1957, 1956, 420, 395, 420, 420, 421, 399, 1958, 401, 420, 393, 393, 399, 420, 399, 420, 399, 420, 399, 393, 1, 1959, 1960, 1959, 395, 400, 1958, 401, 393, 393, 399, 393, 1, 1961, 394, 395, 393, 1, 1962, 404, 1962, 395, 400, 1958, 401, 393, 393, 399, 393, 1, 1958, 1963, 1958, 428, 1420, 428, 428, 399, 399, 429, 401, 428, 393, 393, 399, 428, 399, 428, 399, 428, 399, 393, 1, 1964, 394, 395, 393, 1, 1965, 1966, 1965, 428, 1420, 428, 428, 399, 399, 429, 401, 428, 393, 393, 399, 428, 399, 428, 399, 428, 399, 393, 1, 1967, 394, 395, 393, 1, 1968, 404, 1968, 1420, 401, 393, 393, 399, 393, 1, 1969, 394, 395, 393, 1, 418, 419, 418, 420, 395, 420, 420, 421, 399, 422, 1970, 401, 1970, 420, 393, 393, 399, 420, 399, 420, 399, 420, 399, 393, 1, 418, 419, 418, 420, 395, 420, 420, 421, 399, 422, 1971, 401, 1971, 420, 393, 393, 399, 420, 399, 420, 399, 420, 399, 393, 1, 418, 419, 418, 420, 395, 420, 420, 421, 399, 422, 1972, 401, 1972, 420, 393, 393, 399, 420, 399, 420, 399, 420, 399, 393, 1, 418, 419, 418, 420, 395, 420, 420, 421, 399, 422, 1973, 401, 1973, 420, 393, 393, 399, 420, 399, 420, 399, 420, 399, 393, 1, 1974, 1975, 1974, 420, 395, 420, 420, 421, 399, 1976, 401, 420, 393, 393, 399, 420, 399, 420, 399, 420, 399, 393, 1, 1977, 1978, 1977, 395, 400, 1976, 401, 393, 393, 399, 393, 1, 1979, 394, 395, 393, 1, 1980, 404, 1980, 395, 400, 1976, 401, 393, 393, 399, 393, 1, 1981, 1982, 1981, 428, 1448, 428, 428, 399, 399, 429, 401, 428, 393, 393, 399, 428, 399, 428, 399, 428, 399, 393, 1, 1983, 394, 395, 393, 1, 1984, 1985, 1984, 428, 1448, 428, 428, 399, 399, 429, 401, 428, 393, 393, 399, 428, 399, 428, 399, 428, 399, 393, 1, 1986, 394, 395, 393, 1, 1987, 404, 1987, 1454, 401, 393, 393, 399, 393, 1, 1988, 394, 395, 393, 1, 418, 419, 418, 420, 395, 420, 420, 421, 399, 422, 1989, 401, 1989, 420, 393, 393, 399, 420, 399, 420, 399, 420, 399, 393, 1, 418, 419, 418, 420, 395, 420, 420, 421, 399, 422, 1990, 401, 1990, 420, 393, 393, 399, 420, 399, 420, 399, 420, 399, 393, 1, 418, 419, 418, 420, 395, 420, 420, 421, 399, 422, 1991, 401, 1991, 420, 393, 393, 399, 420, 399, 420, 399, 420, 399, 393, 1, 418, 419, 418, 420, 395, 420, 420, 421, 399, 422, 1992, 401, 1992, 420, 393, 393, 399, 420, 399, 420, 399, 420, 399, 393, 1, 1993, 1994, 1993, 420, 395, 420, 420, 421, 399, 1995, 401, 420, 393, 393, 399, 420, 399, 420, 399, 420, 399, 393, 1, 1996, 1997, 1996, 395, 400, 1995, 401, 393, 393, 399, 393, 1, 1998, 394, 395, 393, 1, 1999, 404, 1999, 395, 400, 1995, 401, 393, 393, 399, 393, 1, 1995, 2000, 1995, 428, 406, 428, 428, 399, 399, 2001, 2002, 429, 401, 2001, 2002, 428, 393, 393, 399, 428, 399, 428, 399, 428, 399, 393, 1, 2003, 394, 395, 393, 1, 2004, 432, 2004, 428, 406, 428, 428, 399, 399, 2001, 2002, 429, 401, 2001, 2002, 428, 393, 393, 399, 428, 399, 428, 399, 428, 399, 393, 1, 435, 436, 435, 428, 395, 428, 428, 421, 399, 2005, 401, 2005, 428, 393, 393, 399, 428, 399, 428, 399, 428, 399, 393, 1, 435, 436, 435, 428, 395, 428, 428, 421, 399, 2006, 401, 2006, 428, 393, 393, 399, 428, 399, 428, 399, 428, 399, 393, 1, 435, 436, 435, 428, 395, 428, 428, 421, 399, 2007, 401, 2007, 428, 393, 393, 399, 428, 399, 428, 399, 428, 399, 393, 1, 435, 436, 435, 428, 395, 428, 428, 421, 399, 2008, 401, 2008, 428, 393, 393, 399, 428, 399, 428, 399, 428, 399, 393, 1, 2009, 2010, 2009, 395, 2011, 401, 393, 393, 399, 393, 1, 435, 436, 435, 428, 395, 428, 428, 421, 399, 2012, 401, 2012, 428, 393, 393, 399, 428, 399, 428, 399, 428, 399, 393, 1, 435, 436, 435, 428, 395, 428, 428, 421, 399, 2007, 401, 2007, 428, 393, 393, 399, 428, 399, 428, 399, 428, 399, 393, 1, 2013, 394, 395, 393, 1, 2014, 26, 21, 1, 285, 286, 285, 287, 77, 287, 287, 288, 69, 289, 2015, 78, 2015, 287, 21, 21, 69, 287, 69, 287, 69, 287, 69, 21, 1, 285, 286, 285, 287, 77, 287, 287, 288, 69, 289, 2016, 78, 2016, 287, 21, 21, 69, 287, 69, 287, 69, 287, 69, 21, 1, 285, 286, 285, 287, 77, 287, 287, 288, 69, 289, 2017, 78, 2017, 287, 21, 21, 69, 287, 69, 287, 69, 287, 69, 21, 1, 285, 286, 285, 287, 77, 287, 287, 288, 69, 289, 2018, 78, 2018, 287, 21, 21, 69, 287, 69, 287, 69, 287, 69, 21, 1, 2019, 2020, 2019, 287, 77, 287, 287, 288, 69, 2021, 78, 287, 21, 21, 69, 287, 69, 287, 69, 287, 69, 21, 1, 2022, 2023, 2022, 77, 268, 2021, 78, 21, 21, 69, 21, 1, 2024, 26, 21, 1, 2025, 76, 2025, 77, 268, 2021, 78, 21, 21, 69, 21, 1, 2026, 2027, 2026, 295, 2028, 295, 295, 69, 69, 297, 78, 295, 21, 21, 69, 295, 69, 295, 69, 295, 69, 21, 1, 2029, 26, 21, 1, 2030, 2031, 2030, 295, 2028, 295, 295, 69, 69, 297, 78, 295, 21, 21, 69, 295, 69, 295, 69, 295, 69, 21, 1, 2032, 26, 21, 1, 2033, 76, 2033, 546, 78, 21, 21, 69, 21, 1, 2034, 26, 21, 1, 285, 286, 285, 287, 77, 287, 287, 288, 69, 289, 2035, 78, 2035, 287, 21, 21, 69, 287, 69, 287, 69, 287, 69, 21, 1, 285, 286, 285, 287, 77, 287, 287, 288, 69, 289, 2036, 78, 2036, 287, 21, 21, 69, 287, 69, 287, 69, 287, 69, 21, 1, 285, 286, 285, 287, 77, 287, 287, 288, 69, 289, 2037, 78, 2037, 287, 21, 21, 69, 287, 69, 287, 69, 287, 69, 21, 1, 285, 286, 285, 287, 77, 287, 287, 288, 69, 289, 2038, 78, 2038, 287, 21, 21, 69, 287, 69, 287, 69, 287, 69, 21, 1, 285, 286, 285, 287, 77, 287, 287, 288, 69, 289, 2039, 78, 2039, 287, 21, 21, 69, 287, 69, 287, 69, 287, 69, 21, 1, 2040, 2041, 2040, 287, 77, 287, 287, 288, 69, 2042, 78, 287, 21, 21, 69, 287, 69, 287, 69, 287, 69, 21, 1, 2043, 2044, 2043, 77, 268, 2042, 78, 21, 21, 69, 21, 1, 2045, 26, 21, 1, 2046, 76, 2046, 77, 268, 2042, 78, 21, 21, 69, 21, 1, 2047, 2048, 2047, 295, 2049, 295, 295, 69, 69, 297, 78, 295, 21, 21, 69, 295, 69, 295, 69, 295, 69, 21, 1, 2050, 26, 21, 1, 2051, 2052, 2051, 295, 2049, 295, 295, 69, 69, 297, 78, 295, 21, 21, 69, 295, 69, 295, 69, 295, 69, 21, 1, 2053, 26, 21, 1, 2054, 76, 2054, 717, 78, 21, 21, 69, 21, 1, 2055, 26, 21, 1, 285, 286, 285, 287, 77, 287, 287, 288, 69, 289, 2056, 78, 2056, 287, 21, 21, 69, 287, 69, 287, 69, 287, 69, 21, 1, 285, 286, 285, 287, 77, 287, 287, 288, 69, 289, 2057, 78, 2057, 287, 21, 21, 69, 287, 69, 287, 69, 287, 69, 21, 1, 2058, 2059, 2058, 287, 77, 287, 287, 288, 69, 2060, 78, 287, 21, 21, 69, 287, 69, 287, 69, 287, 69, 21, 1, 2061, 2062, 2061, 77, 268, 2060, 78, 21, 21, 69, 21, 1, 2063, 26, 21, 1, 2064, 76, 2064, 77, 268, 2060, 78, 21, 21, 69, 21, 1, 2060, 2065, 2060, 295, 2066, 295, 295, 69, 69, 297, 78, 295, 21, 21, 69, 295, 69, 295, 69, 295, 69, 21, 1, 2067, 26, 21, 1, 2068, 2069, 2068, 295, 2066, 295, 295, 69, 69, 297, 78, 295, 21, 21, 69, 295, 69, 295, 69, 295, 69, 21, 1, 2070, 26, 21, 1, 2071, 76, 2071, 2066, 78, 21, 21, 69, 21, 1, 2072, 2073, 2072, 197, 2074, 198, 194, 194, 195, 194, 1, 2075, 26, 21, 1, 285, 286, 285, 287, 77, 287, 287, 288, 69, 289, 2076, 78, 2076, 287, 21, 21, 69, 287, 69, 287, 69, 287, 69, 21, 1, 285, 286, 285, 287, 77, 287, 287, 288, 69, 289, 2077, 78, 2077, 287, 21, 21, 69, 287, 69, 287, 69, 287, 69, 21, 1, 285, 286, 285, 287, 77, 287, 287, 288, 69, 289, 2078, 78, 2078, 287, 21, 21, 69, 287, 69, 287, 69, 287, 69, 21, 1, 285, 286, 285, 287, 77, 287, 287, 288, 69, 289, 2079, 78, 2079, 287, 21, 21, 69, 287, 69, 287, 69, 287, 69, 21, 1, 2080, 2081, 2080, 287, 77, 287, 287, 288, 69, 2082, 78, 287, 21, 21, 69, 287, 69, 287, 69, 287, 69, 21, 1, 2083, 2084, 2083, 77, 268, 2082, 78, 21, 21, 69, 21, 1, 2085, 26, 21, 1, 2086, 76, 2086, 77, 268, 2082, 78, 21, 21, 69, 21, 1, 2087, 2088, 2087, 295, 2089, 295, 295, 69, 69, 297, 78, 295, 21, 21, 69, 295, 69, 295, 69, 295, 69, 21, 1, 2090, 26, 21, 1, 2091, 2092, 2091, 295, 2089, 295, 295, 69, 69, 297, 78, 295, 21, 21, 69, 295, 69, 295, 69, 295, 69, 21, 1, 2093, 26, 21, 1, 2094, 76, 2094, 1104, 78, 21, 21, 69, 21, 1, 2095, 26, 21, 1, 285, 286, 285, 287, 77, 287, 287, 288, 69, 289, 2096, 78, 2096, 287, 21, 21, 69, 287, 69, 287, 69, 287, 69, 21, 1, 285, 286, 285, 287, 77, 287, 287, 288, 69, 289, 2097, 78, 2097, 287, 21, 21, 69, 287, 69, 287, 69, 287, 69, 21, 1, 285, 286, 285, 287, 77, 287, 287, 288, 69, 289, 2098, 78, 2098, 287, 21, 21, 69, 287, 69, 287, 69, 287, 69, 21, 1, 285, 286, 285, 287, 77, 287, 287, 288, 69, 289, 2099, 78, 2099, 287, 21, 21, 69, 287, 69, 287, 69, 287, 69, 21, 1, 2100, 2101, 2100, 287, 77, 287, 287, 288, 69, 2102, 78, 287, 21, 21, 69, 287, 69, 287, 69, 287, 69, 21, 1, 2103, 2104, 2103, 77, 268, 2102, 78, 21, 21, 69, 21, 1, 2105, 26, 21, 1, 2106, 76, 2106, 77, 268, 2102, 78, 21, 21, 69, 21, 1, 2102, 2107, 2102, 295, 296, 295, 295, 69, 69, 2108, 2109, 297, 78, 2108, 2109, 295, 21, 21, 69, 295, 69, 295, 69, 295, 69, 21, 1, 2110, 26, 21, 1, 2111, 300, 2111, 295, 296, 295, 295, 69, 69, 2108, 2109, 297, 78, 2108, 2109, 295, 21, 21, 69, 295, 69, 295, 69, 295, 69, 21, 1, 303, 304, 303, 295, 77, 295, 295, 288, 69, 2112, 78, 2112, 295, 21, 21, 69, 295, 69, 295, 69, 295, 69, 21, 1, 303, 304, 303, 295, 77, 295, 295, 288, 69, 2113, 78, 2113, 295, 21, 21, 69, 295, 69, 295, 69, 295, 69, 21, 1, 303, 304, 303, 295, 77, 295, 295, 288, 69, 2114, 78, 2114, 295, 21, 21, 69, 295, 69, 295, 69, 295, 69, 21, 1, 303, 304, 303, 295, 77, 295, 295, 288, 69, 2115, 78, 2115, 295, 21, 21, 69, 295, 69, 295, 69, 295, 69, 21, 1, 2116, 2117, 2116, 77, 2118, 78, 21, 21, 69, 21, 1, 303, 304, 303, 295, 77, 295, 295, 288, 69, 2119, 78, 2119, 295, 21, 21, 69, 295, 69, 295, 69, 295, 69, 21, 1, 303, 304, 303, 295, 77, 295, 295, 288, 69, 2114, 78, 2114, 295, 21, 21, 69, 295, 69, 295, 69, 295, 69, 21, 1, 2120, 26, 21, 1, 2121, 26, 21, 1, 49, 50, 49, 51, 51, 51, 52, 21, 53, 2122, 2122, 51, 21, 51, 21, 51, 21, 51, 21, 1, 49, 50, 49, 51, 51, 51, 52, 21, 53, 2123, 2123, 51, 21, 51, 21, 51, 21, 51, 21, 1, 49, 50, 49, 51, 51, 51, 52, 21, 53, 2124, 2124, 51, 21, 51, 21, 51, 21, 51, 21, 1, 49, 50, 49, 51, 51, 51, 52, 21, 53, 2125, 2125, 51, 21, 51, 21, 51, 21, 51, 21, 1, 2126, 2127, 2126, 51, 51, 51, 52, 21, 2128, 51, 21, 51, 21, 51, 21, 51, 21, 1, 2129, 2130, 2129, 56, 2128, 21, 1, 2131, 26, 21, 1, 2132, 26, 2132, 56, 2128, 21, 1, 2128, 2133, 2128, 68, 2134, 68, 68, 21, 21, 70, 68, 21, 68, 21, 68, 21, 68, 21, 1, 2135, 26, 21, 1, 2136, 2137, 2136, 68, 2134, 68, 68, 21, 21, 70, 68, 21, 68, 21, 68, 21, 68, 21, 1, 2138, 26, 21, 1, 2139, 26, 2139, 2134, 21, 1, 389, 2140, 390, 392, 386, 386, 389, 386, 1, 2141, 26, 21, 1, 49, 50, 49, 51, 51, 51, 52, 21, 53, 2142, 2142, 51, 21, 51, 21, 51, 21, 51, 21, 1, 49, 50, 49, 51, 51, 51, 52, 21, 53, 2143, 2143, 51, 21, 51, 21, 51, 21, 51, 21, 1, 49, 50, 49, 51, 51, 51, 52, 21, 53, 2144, 2144, 51, 21, 51, 21, 51, 21, 51, 21, 1, 49, 50, 49, 51, 51, 51, 52, 21, 53, 2145, 2145, 51, 21, 51, 21, 51, 21, 51, 21, 1, 49, 50, 49, 51, 51, 51, 52, 21, 53, 2146, 2146, 51, 21, 51, 21, 51, 21, 51, 21, 1, 49, 50, 49, 51, 51, 51, 52, 21, 53, 2147, 2147, 51, 21, 51, 21, 51, 21, 51, 21, 1, 49, 50, 49, 51, 51, 51, 52, 21, 53, 2148, 2148, 51, 21, 51, 21, 51, 21, 51, 21, 1, 2149, 2150, 2149, 51, 51, 51, 52, 21, 2151, 51, 21, 51, 21, 51, 21, 51, 21, 1, 2152, 2153, 2152, 56, 2151, 21, 1, 2154, 26, 21, 1, 2155, 26, 2155, 56, 2151, 21, 1, 2151, 2156, 2151, 2157, 69, 2157, 2157, 21, 21, 70, 2157, 21, 2157, 21, 2157, 21, 2157, 21, 1, 2158, 26, 21, 1, 2159, 73, 2159, 2157, 69, 2157, 2157, 21, 21, 70, 2157, 21, 2157, 21, 2157, 21, 2157, 21, 1, 2160, 2161, 2160, 2162, 2162, 2162, 2163, 21, 2162, 21, 2162, 21, 2162, 21, 2162, 21, 1, 2164, 26, 21, 1, 49, 50, 49, 51, 51, 51, 52, 21, 53, 2165, 2165, 51, 21, 51, 21, 51, 21, 51, 21, 1, 49, 50, 49, 51, 51, 51, 52, 21, 53, 2166, 2166, 51, 21, 51, 21, 51, 21, 51, 21, 1, 49, 50, 49, 51, 51, 51, 52, 21, 53, 2167, 2167, 51, 21, 51, 21, 51, 21, 51, 21, 1, 49, 50, 49, 51, 51, 51, 52, 21, 53, 2168, 2168, 51, 21, 51, 21, 51, 21, 51, 21, 1, 49, 50, 49, 51, 51, 51, 52, 21, 53, 2169, 2169, 51, 21, 51, 21, 51, 21, 51, 21, 1, 2170, 2171, 2170, 51, 51, 51, 52, 21, 2172, 51, 21, 51, 21, 51, 21, 51, 21, 1, 2173, 2174, 2173, 56, 2172, 21, 1, 2175, 26, 21, 1, 2176, 26, 2176, 56, 2172, 21, 1, 2172, 2177, 2172, 68, 2178, 68, 68, 21, 21, 70, 68, 21, 68, 21, 68, 21, 68, 21, 1, 2179, 26, 21, 1, 2180, 2181, 2180, 68, 2178, 68, 68, 21, 21, 70, 68, 21, 68, 21, 68, 21, 68, 21, 1, 2182, 26, 21, 1, 2183, 26, 2183, 2178, 21, 1, 2184, 2185, 390, 2186, 386, 386, 2184, 386, 1, 2187, 2188, 395, 2189, 393, 393, 2187, 393, 1, 2190, 394, 395, 393, 1, 393, 394, 2191, 2187, 393, 1, 2192, 2193, 2192, 77, 2194, 78, 21, 21, 69, 21, 1, 2195, 26, 21, 1, 2196, 2197, 2196, 77, 2194, 78, 21, 21, 69, 21, 1, 2198, 26, 21, 1, 2199, 76, 2199, 77, 2194, 78, 21, 21, 69, 21, 1, 2194, 2200, 2194, 2201, 77, 2201, 2201, 69, 69, 2202, 2203, 2204, 2205, 2206, 2207, 2208, 78, 2202, 2203, 2204, 2205, 2206, 2207, 2208, 2201, 21, 21, 69, 2201, 69, 2201, 69, 2201, 69, 21, 1, 2209, 26, 21, 1, 2210, 76, 2210, 2201, 77, 2201, 2201, 69, 69, 2202, 2203, 2204, 2205, 2206, 2207, 2208, 78, 2202, 2203, 2204, 2205, 2206, 2207, 2208, 2201, 21, 21, 69, 2201, 69, 2201, 69, 2201, 69, 21, 1, 2211, 2212, 2211, 2213, 77, 2213, 2213, 2214, 69, 2215, 78, 2213, 21, 21, 69, 2213, 69, 2213, 69, 2213, 69, 21, 1, 2216, 2217, 2216, 77, 2194, 2215, 78, 21, 21, 69, 21, 1, 2218, 26, 21, 1, 2219, 76, 2219, 77, 2194, 2215, 78, 21, 21, 69, 21, 1, 2215, 2220, 2215, 2221, 296, 2221, 2221, 69, 69, 2222, 78, 2221, 21, 21, 69, 2221, 69, 2221, 69, 2221, 69, 21, 1, 2223, 26, 21, 1, 2224, 300, 2224, 2221, 296, 2221, 2221, 69, 69, 2222, 78, 2221, 21, 21, 69, 2221, 69, 2221, 69, 2221, 69, 21, 1, 2225, 2226, 2225, 2221, 77, 2221, 2221, 2214, 69, 78, 2221, 21, 21, 69, 2221, 69, 2221, 69, 2221, 69, 21, 1, 2227, 2228, 2227, 77, 2194, 78, 21, 21, 69, 21, 1, 2229, 26, 21, 1, 69, 76, 77, 2231, 78, 21, 21, 69, 2230, 69, 2230, 69, 2230, 69, 21, 1, 69, 76, 77, 2233, 78, 2234, 21, 21, 69, 2232, 69, 2232, 69, 2232, 69, 21, 1, 69, 76, 77, 2233, 78, 2234, 21, 21, 69, 2235, 69, 2235, 69, 2235, 69, 21, 1, 69, 76, 77, 2233, 78, 2234, 21, 21, 69, 2236, 69, 2236, 69, 2236, 69, 21, 1, 69, 76, 77, 2233, 78, 2234, 21, 21, 69, 21, 1, 69, 76, 77, 2238, 78, 21, 21, 69, 2237, 69, 2230, 69, 2230, 69, 21, 1, 69, 76, 77, 2239, 2233, 78, 2234, 21, 21, 69, 2240, 69, 2232, 69, 2232, 69, 21, 1, 69, 76, 77, 78, 21, 21, 69, 2241, 69, 21, 1, 69, 76, 77, 2242, 78, 21, 21, 69, 2243, 69, 21, 1, 69, 76, 77, 78, 21, 21, 69, 2244, 69, 21, 1, 69, 76, 77, 2245, 78, 21, 21, 69, 2246, 69, 21, 1, 69, 76, 77, 78, 21, 21, 69, 2247, 69, 21, 1, 69, 76, 77, 78, 2234, 21, 21, 69, 2248, 69, 21, 1, 69, 76, 77, 78, 2234, 21, 21, 69, 2249, 69, 21, 1, 69, 76, 77, 78, 2234, 21, 21, 69, 21, 1, 2225, 2226, 2225, 77, 2214, 78, 21, 21, 69, 21, 1, 69, 76, 77, 2245, 78, 21, 21, 69, 2250, 69, 21, 1, 69, 76, 77, 2245, 78, 21, 21, 69, 21, 1, 69, 76, 77, 2242, 78, 21, 21, 69, 2251, 69, 21, 1, 69, 76, 77, 2242, 78, 21, 21, 69, 21, 1, 69, 76, 77, 2239, 2233, 78, 2234, 21, 21, 69, 2252, 69, 2235, 69, 2235, 69, 21, 1, 69, 76, 77, 2239, 2233, 78, 2234, 21, 21, 69, 2236, 69, 2236, 69, 2236, 69, 21, 1, 69, 76, 77, 2254, 78, 2234, 21, 21, 69, 2253, 69, 2253, 69, 2253, 69, 21, 1, 69, 76, 77, 2256, 78, 2234, 21, 21, 69, 2255, 69, 2255, 69, 2255, 69, 21, 1, 69, 76, 77, 2256, 78, 2234, 21, 21, 69, 2257, 69, 2257, 69, 2257, 69, 21, 1, 69, 76, 77, 2256, 78, 2234, 21, 21, 69, 2258, 69, 2258, 69, 2258, 69, 21, 1, 69, 76, 77, 2256, 78, 2234, 21, 21, 69, 21, 1, 69, 76, 77, 78, 21, 21, 69, 2259, 69, 2253, 69, 2253, 69, 21, 1, 69, 76, 77, 2239, 2256, 78, 2234, 21, 21, 69, 2260, 69, 2255, 69, 2255, 69, 21, 1, 69, 76, 77, 2239, 2256, 78, 2234, 21, 21, 69, 2261, 69, 2257, 69, 2257, 69, 21, 1, 69, 76, 77, 2239, 2256, 78, 2234, 21, 21, 69, 2258, 69, 2258, 69, 2258, 69, 21, 1, 69, 76, 77, 78, 21, 21, 69, 2262, 69, 21, 1, 69, 76, 77, 2239, 78, 21, 21, 69, 2263, 69, 21, 1, 69, 76, 77, 2239, 78, 21, 21, 69, 2264, 69, 21, 1, 69, 76, 77, 2239, 78, 21, 21, 69, 21, 1, 69, 76, 77, 2238, 78, 21, 21, 69, 21, 1, 2265, 26, 21, 1, 2211, 2212, 2211, 2213, 77, 2213, 2213, 2214, 69, 2215, 2266, 78, 2266, 2213, 21, 21, 69, 2213, 69, 2213, 69, 2213, 69, 21, 1, 2211, 2212, 2211, 2213, 77, 2213, 2213, 2214, 69, 2215, 2267, 78, 2267, 2213, 21, 21, 69, 2213, 69, 2213, 69, 2213, 69, 21, 1, 2211, 2212, 2211, 2213, 77, 2213, 2213, 2214, 69, 2215, 2268, 78, 2268, 2213, 21, 21, 69, 2213, 69, 2213, 69, 2213, 69, 21, 1, 2211, 2212, 2211, 2213, 77, 2213, 2213, 2214, 69, 2215, 2269, 78, 2269, 2213, 21, 21, 69, 2213, 69, 2213, 69, 2213, 69, 21, 1, 2211, 2212, 2211, 2213, 77, 2213, 2213, 2214, 69, 2215, 2270, 78, 2270, 2213, 21, 21, 69, 2213, 69, 2213, 69, 2213, 69, 21, 1, 2211, 2212, 2211, 2213, 77, 2213, 2213, 2214, 69, 2215, 2271, 78, 2271, 2213, 21, 21, 69, 2213, 69, 2213, 69, 2213, 69, 21, 1, 2211, 2212, 2211, 2213, 77, 2213, 2213, 2214, 69, 2215, 2272, 78, 2272, 2213, 21, 21, 69, 2213, 69, 2213, 69, 2213, 69, 21, 1, 2211, 2212, 2211, 2213, 77, 2213, 2213, 2214, 69, 2215, 2273, 78, 2273, 2213, 21, 21, 69, 2213, 69, 2213, 69, 2213, 69, 21, 1, 2274, 2275, 2274, 2213, 77, 2213, 2213, 2214, 69, 2276, 78, 2213, 21, 21, 69, 2213, 69, 2213, 69, 2213, 69, 21, 1, 2277, 2278, 2277, 77, 2194, 2276, 78, 21, 21, 69, 21, 1, 2279, 26, 21, 1, 2280, 76, 2280, 77, 2194, 2276, 78, 21, 21, 69, 21, 1, 2276, 2281, 2276, 2282, 296, 2282, 2282, 69, 69, 2222, 78, 2282, 21, 21, 69, 2282, 69, 2282, 69, 2282, 69, 21, 1, 2283, 26, 21, 1, 2284, 300, 2284, 2282, 296, 2282, 2282, 69, 69, 2222, 78, 2282, 21, 21, 69, 2282, 69, 2282, 69, 2282, 69, 21, 1, 2285, 2286, 2285, 2287, 77, 2287, 2287, 2288, 69, 78, 2287, 21, 21, 69, 2287, 69, 2287, 69, 2287, 69, 21, 1, 2289, 26, 21, 1, 2211, 2212, 2211, 2213, 77, 2213, 2213, 2214, 69, 2215, 2290, 78, 2290, 2213, 21, 21, 69, 2213, 69, 2213, 69, 2213, 69, 21, 1, 2211, 2212, 2211, 2213, 77, 2213, 2213, 2214, 69, 2215, 2291, 78, 2291, 2213, 21, 21, 69, 2213, 69, 2213, 69, 2213, 69, 21, 1, 2211, 2212, 2211, 2213, 77, 2213, 2213, 2214, 69, 2215, 2292, 78, 2292, 2213, 21, 21, 69, 2213, 69, 2213, 69, 2213, 69, 21, 1, 2211, 2212, 2211, 2213, 77, 2213, 2213, 2214, 69, 2215, 2293, 78, 2293, 2213, 21, 21, 69, 2213, 69, 2213, 69, 2213, 69, 21, 1, 2211, 2212, 2211, 2213, 77, 2213, 2213, 2214, 69, 2215, 2294, 78, 2294, 2213, 21, 21, 69, 2213, 69, 2213, 69, 2213, 69, 21, 1, 2295, 2296, 2295, 2213, 77, 2213, 2213, 2214, 69, 2297, 78, 2213, 21, 21, 69, 2213, 69, 2213, 69, 2213, 69, 21, 1, 2298, 2299, 2298, 77, 2194, 2297, 78, 21, 21, 69, 21, 1, 2300, 26, 21, 1, 2301, 76, 2301, 77, 2194, 2297, 78, 21, 21, 69, 21, 1, 2297, 2302, 2297, 2221, 2303, 2221, 2221, 69, 69, 2222, 78, 2221, 21, 21, 69, 2221, 69, 2221, 69, 2221, 69, 21, 1, 2304, 26, 21, 1, 2305, 2306, 2305, 2221, 2303, 2221, 2221, 69, 69, 2222, 78, 2221, 21, 21, 69, 2221, 69, 2221, 69, 2221, 69, 21, 1, 2307, 26, 21, 1, 2308, 76, 2308, 2303, 78, 21, 21, 69, 21, 1, 2309, 2310, 2309, 390, 2311, 392, 386, 386, 389, 386, 1, 2312, 26, 21, 1, 2211, 2212, 2211, 2213, 77, 2213, 2213, 2214, 69, 2215, 2313, 78, 2313, 2213, 21, 21, 69, 2213, 69, 2213, 69, 2213, 69, 21, 1, 2211, 2212, 2211, 2213, 77, 2213, 2213, 2214, 69, 2215, 2314, 78, 2314, 2213, 21, 21, 69, 2213, 69, 2213, 69, 2213, 69, 21, 1, 2211, 2212, 2211, 2213, 77, 2213, 2213, 2214, 69, 2215, 2315, 78, 2315, 2213, 21, 21, 69, 2213, 69, 2213, 69, 2213, 69, 21, 1, 2211, 2212, 2211, 2213, 77, 2213, 2213, 2214, 69, 2215, 2316, 78, 2316, 2213, 21, 21, 69, 2213, 69, 2213, 69, 2213, 69, 21, 1, 2317, 2318, 2317, 2213, 77, 2213, 2213, 2214, 69, 2319, 78, 2213, 21, 21, 69, 2213, 69, 2213, 69, 2213, 69, 21, 1, 2320, 2321, 2320, 77, 2194, 2319, 78, 21, 21, 69, 21, 1, 2322, 26, 21, 1, 2323, 76, 2323, 77, 2194, 2319, 78, 21, 21, 69, 21, 1, 2324, 2325, 2324, 2221, 2028, 2221, 2221, 69, 69, 2222, 78, 2221, 21, 21, 69, 2221, 69, 2221, 69, 2221, 69, 21, 1, 2326, 26, 21, 1, 2327, 2031, 2327, 2221, 2028, 2221, 2221, 69, 69, 2222, 78, 2221, 21, 21, 69, 2221, 69, 2221, 69, 2221, 69, 21, 1, 2328, 26, 21, 1, 2211, 2212, 2211, 2213, 77, 2213, 2213, 2214, 69, 2215, 2329, 78, 2329, 2213, 21, 21, 69, 2213, 69, 2213, 69, 2213, 69, 21, 1, 2211, 2212, 2211, 2213, 77, 2213, 2213, 2214, 69, 2215, 2330, 78, 2330, 2213, 21, 21, 69, 2213, 69, 2213, 69, 2213, 69, 21, 1, 2211, 2212, 2211, 2213, 77, 2213, 2213, 2214, 69, 2215, 2331, 78, 2331, 2213, 21, 21, 69, 2213, 69, 2213, 69, 2213, 69, 21, 1, 2211, 2212, 2211, 2213, 77, 2213, 2213, 2214, 69, 2215, 2332, 78, 2332, 2213, 21, 21, 69, 2213, 69, 2213, 69, 2213, 69, 21, 1, 2211, 2212, 2211, 2213, 77, 2213, 2213, 2214, 69, 2215, 2333, 78, 2333, 2213, 21, 21, 69, 2213, 69, 2213, 69, 2213, 69, 21, 1, 2334, 2335, 2334, 2213, 77, 2213, 2213, 2214, 69, 2336, 78, 2213, 21, 21, 69, 2213, 69, 2213, 69, 2213, 69, 21, 1, 2337, 2338, 2337, 77, 2194, 2336, 78, 21, 21, 69, 21, 1, 2339, 26, 21, 1, 2340, 76, 2340, 77, 2194, 2336, 78, 21, 21, 69, 21, 1, 2341, 2342, 2341, 2221, 2049, 2221, 2221, 69, 69, 2222, 78, 2221, 21, 21, 69, 2221, 69, 2221, 69, 2221, 69, 21, 1, 2343, 26, 21, 1, 2344, 2052, 2344, 2221, 2049, 2221, 2221, 69, 69, 2222, 78, 2221, 21, 21, 69, 2221, 69, 2221, 69, 2221, 69, 21, 1, 2345, 26, 21, 1, 2211, 2212, 2211, 2213, 77, 2213, 2213, 2214, 69, 2215, 2346, 78, 2346, 2213, 21, 21, 69, 2213, 69, 2213, 69, 2213, 69, 21, 1, 2211, 2212, 2211, 2213, 77, 2213, 2213, 2214, 69, 2215, 2347, 78, 2347, 2213, 21, 21, 69, 2213, 69, 2213, 69, 2213, 69, 21, 1, 2348, 2349, 2348, 2213, 77, 2213, 2213, 2214, 69, 2350, 78, 2213, 21, 21, 69, 2213, 69, 2213, 69, 2213, 69, 21, 1, 2351, 2352, 2351, 77, 2194, 2350, 78, 21, 21, 69, 21, 1, 2353, 26, 21, 1, 2354, 76, 2354, 77, 2194, 2350, 78, 21, 21, 69, 21, 1, 2350, 2355, 2350, 2221, 2356, 2221, 2221, 69, 69, 2222, 78, 2221, 21, 21, 69, 2221, 69, 2221, 69, 2221, 69, 21, 1, 2357, 26, 21, 1, 2358, 2359, 2358, 2221, 2356, 2221, 2221, 69, 69, 2222, 78, 2221, 21, 21, 69, 2221, 69, 2221, 69, 2221, 69, 21, 1, 2360, 26, 21, 1, 2361, 76, 2361, 2356, 78, 21, 21, 69, 21, 1, 2362, 2363, 2362, 197, 2364, 198, 194, 194, 195, 194, 1, 2365, 26, 21, 1, 2211, 2212, 2211, 2213, 77, 2213, 2213, 2214, 69, 2215, 2366, 78, 2366, 2213, 21, 21, 69, 2213, 69, 2213, 69, 2213, 69, 21, 1, 2211, 2212, 2211, 2213, 77, 2213, 2213, 2214, 69, 2215, 2367, 78, 2367, 2213, 21, 21, 69, 2213, 69, 2213, 69, 2213, 69, 21, 1, 2211, 2212, 2211, 2213, 77, 2213, 2213, 2214, 69, 2215, 2368, 78, 2368, 2213, 21, 21, 69, 2213, 69, 2213, 69, 2213, 69, 21, 1, 2211, 2212, 2211, 2213, 77, 2213, 2213, 2214, 69, 2215, 2369, 78, 2369, 2213, 21, 21, 69, 2213, 69, 2213, 69, 2213, 69, 21, 1, 2370, 2371, 2370, 2213, 77, 2213, 2213, 2214, 69, 2372, 78, 2213, 21, 21, 69, 2213, 69, 2213, 69, 2213, 69, 21, 1, 2373, 2374, 2373, 77, 2194, 2372, 78, 21, 21, 69, 21, 1, 2375, 26, 21, 1, 2376, 76, 2376, 77, 2194, 2372, 78, 21, 21, 69, 21, 1, 2377, 2378, 2377, 2221, 2089, 2221, 2221, 69, 69, 2222, 78, 2221, 21, 21, 69, 2221, 69, 2221, 69, 2221, 69, 21, 1, 2379, 26, 21, 1, 2380, 2092, 2380, 2221, 2089, 2221, 2221, 69, 69, 2222, 78, 2221, 21, 21, 69, 2221, 69, 2221, 69, 2221, 69, 21, 1, 2381, 26, 21, 1, 2211, 2212, 2211, 2213, 77, 2213, 2213, 2214, 69, 2215, 2382, 78, 2382, 2213, 21, 21, 69, 2213, 69, 2213, 69, 2213, 69, 21, 1, 2211, 2212, 2211, 2213, 77, 2213, 2213, 2214, 69, 2215, 2383, 78, 2383, 2213, 21, 21, 69, 2213, 69, 2213, 69, 2213, 69, 21, 1, 2211, 2212, 2211, 2213, 77, 2213, 2213, 2214, 69, 2215, 2384, 78, 2384, 2213, 21, 21, 69, 2213, 69, 2213, 69, 2213, 69, 21, 1, 2211, 2212, 2211, 2213, 77, 2213, 2213, 2214, 69, 2215, 2385, 78, 2385, 2213, 21, 21, 69, 2213, 69, 2213, 69, 2213, 69, 21, 1, 2386, 2387, 2386, 2213, 77, 2213, 2213, 2214, 69, 2388, 78, 2213, 21, 21, 69, 2213, 69, 2213, 69, 2213, 69, 21, 1, 2389, 2390, 2389, 77, 2194, 2388, 78, 21, 21, 69, 21, 1, 2391, 26, 21, 1, 2392, 76, 2392, 77, 2194, 2388, 78, 21, 21, 69, 21, 1, 2388, 2393, 2388, 2221, 296, 2221, 2221, 69, 69, 2394, 2395, 2222, 78, 2394, 2395, 2221, 21, 21, 69, 2221, 69, 2221, 69, 2221, 69, 21, 1, 2396, 26, 21, 1, 2397, 300, 2397, 2221, 296, 2221, 2221, 69, 69, 2394, 2395, 2222, 78, 2394, 2395, 2221, 21, 21, 69, 2221, 69, 2221, 69, 2221, 69, 21, 1, 2225, 2226, 2225, 2221, 77, 2221, 2221, 2214, 69, 2398, 78, 2398, 2221, 21, 21, 69, 2221, 69, 2221, 69, 2221, 69, 21, 1, 2225, 2226, 2225, 2221, 77, 2221, 2221, 2214, 69, 2399, 78, 2399, 2221, 21, 21, 69, 2221, 69, 2221, 69, 2221, 69, 21, 1, 2225, 2226, 2225, 2221, 77, 2221, 2221, 2214, 69, 2400, 78, 2400, 2221, 21, 21, 69, 2221, 69, 2221, 69, 2221, 69, 21, 1, 2225, 2226, 2225, 2221, 77, 2221, 2221, 2214, 69, 2401, 78, 2401, 2221, 21, 21, 69, 2221, 69, 2221, 69, 2221, 69, 21, 1, 2402, 2403, 2402, 77, 2404, 78, 21, 21, 69, 21, 1, 2225, 2226, 2225, 2221, 77, 2221, 2221, 2214, 69, 2405, 78, 2405, 2221, 21, 21, 69, 2221, 69, 2221, 69, 2221, 69, 21, 1, 2225, 2226, 2225, 2221, 77, 2221, 2221, 2214, 69, 2400, 78, 2400, 2221, 21, 21, 69, 2221, 69, 2221, 69, 2221, 69, 21, 1, 2406, 26, 21, 1, 2407, 26, 21, 1, 49, 50, 49, 51, 51, 51, 52, 21, 53, 2408, 2408, 51, 21, 51, 21, 51, 21, 51, 21, 1, 49, 50, 49, 51, 51, 51, 52, 21, 53, 2409, 2409, 51, 21, 51, 21, 51, 21, 51, 21, 1, 2410, 2411, 2410, 51, 51, 51, 52, 21, 2412, 51, 21, 51, 21, 51, 21, 51, 21, 1, 2413, 2414, 2413, 56, 2412, 21, 1, 2415, 26, 21, 1, 2416, 26, 2416, 56, 2412, 21, 1, 2412, 2417, 2412, 68, 2418, 68, 68, 21, 21, 70, 68, 21, 68, 21, 68, 21, 68, 21, 1, 2419, 26, 21, 1, 2420, 2421, 2420, 68, 2418, 68, 68, 21, 21, 70, 68, 21, 68, 21, 68, 21, 68, 21, 1, 2422, 26, 21, 1, 2423, 26, 2423, 2418, 21, 1, 2424, 2425, 197, 2426, 194, 194, 2424, 194, 1, 2427, 2428, 201, 2429, 199, 199, 2427, 199, 1, 2430, 200, 201, 199, 1, 199, 200, 2431, 2427, 199, 1, 2432, 26, 21, 1, 26, 2433, 2433, 21, 1, 26, 2434, 2434, 21, 1, 26, 2435, 2435, 21, 1, 26, 2436, 2436, 21, 1, 26, 2437, 2437, 21, 1, 2438, 2439, 2438, 21, 1, 2440, 26, 21, 1, 30, 26, 30, 21, 1, 2441, 2441, 1, 6, 6, 1, 26, 21, 1, 30, 26, 30, 21, 1, 48, 26, 48, 21, 1, 58, 26, 58, 21, 1, 63, 26, 63, 21, 1, 58, 26, 58, 39, 39, 39, 21, 21, 40, 60, 42, 43, 61, 45, 46, 40, 60, 42, 43, 61, 45, 46, 39, 21, 39, 21, 39, 21, 39, 21, 1, 72, 26, 72, 21, 1, 75, 26, 75, 21, 1, 69, 26, 69, 21, 1, 85, 26, 85, 21, 1, 85, 26, 85, 39, 39, 39, 21, 21, 40, 60, 42, 43, 61, 45, 46, 40, 60, 42, 43, 61, 45, 46, 39, 21, 39, 21, 39, 21, 39, 21, 1, 97, 26, 97, 21, 1, 2442, 26, 2442, 21, 1, 105, 26, 105, 21, 1, 106, 26, 106, 21, 1, 97, 26, 97, 39, 39, 39, 21, 21, 40, 60, 42, 43, 61, 45, 46, 40, 60, 42, 43, 61, 45, 46, 39, 21, 39, 21, 39, 21, 39, 21, 1, 160, 26, 160, 21, 1, 2443, 26, 2443, 21, 1, 168, 26, 168, 21, 1, 169, 26, 169, 21, 1, 160, 26, 160, 39, 39, 39, 21, 21, 40, 60, 42, 43, 61, 45, 46, 40, 60, 42, 43, 61, 45, 46, 39, 21, 39, 21, 39, 21, 39, 21, 1, 186, 26, 186, 21, 1, 190, 26, 190, 21, 1, 193, 26, 193, 21, 1, 200, 201, 199, 1, 206, 26, 206, 39, 39, 39, 21, 21, 40, 60, 42, 43, 61, 45, 46, 40, 60, 42, 43, 61, 45, 46, 39, 21, 39, 21, 39, 21, 39, 21, 1, 218, 26, 218, 21, 1, 2444, 26, 2444, 21, 1, 226, 26, 226, 21, 1, 227, 26, 227, 21, 1, 218, 26, 218, 39, 39, 39, 21, 21, 40, 60, 42, 43, 61, 45, 46, 40, 60, 42, 43, 61, 45, 46, 39, 21, 39, 21, 39, 21, 39, 21, 1, 246, 26, 246, 21, 1, 251, 26, 251, 21, 1, 246, 26, 246, 39, 39, 39, 21, 21, 40, 60, 42, 43, 61, 45, 46, 40, 60, 42, 43, 61, 45, 46, 39, 21, 39, 21, 39, 21, 39, 21, 1, 261, 200, 261, 201, 199, 1, 270, 26, 270, 39, 39, 39, 21, 21, 40, 60, 42, 43, 61, 45, 46, 40, 60, 42, 43, 61, 45, 46, 39, 21, 39, 21, 39, 21, 39, 21, 1, 273, 26, 273, 39, 39, 39, 21, 21, 40, 60, 42, 43, 61, 45, 46, 40, 60, 42, 43, 61, 45, 46, 39, 21, 39, 21, 39, 21, 39, 21, 1, 284, 26, 284, 21, 1, 293, 26, 293, 21, 1, 299, 26, 299, 21, 1, 302, 26, 302, 21, 1, 273, 26, 273, 21, 1, 293, 26, 293, 39, 39, 39, 21, 21, 40, 60, 42, 43, 61, 45, 46, 40, 60, 42, 43, 61, 45, 46, 39, 21, 39, 21, 39, 21, 39, 21, 1, 357, 26, 357, 21, 1, 361, 26, 361, 21, 1, 357, 26, 357, 39, 39, 39, 21, 21, 40, 60, 42, 43, 61, 45, 46, 40, 60, 42, 43, 61, 45, 46, 39, 21, 39, 21, 39, 21, 39, 21, 1, 378, 26, 378, 21, 1, 382, 26, 382, 21, 1, 385, 26, 385, 21, 1, 394, 395, 393, 1, 403, 394, 403, 395, 393, 1, 399, 394, 399, 395, 393, 1, 417, 394, 417, 395, 393, 1, 426, 394, 426, 395, 393, 1, 431, 394, 431, 395, 393, 1, 434, 394, 434, 395, 393, 1, 403, 394, 403, 449, 395, 449, 449, 393, 393, 450, 451, 452, 453, 454, 455, 456, 450, 451, 452, 453, 454, 455, 456, 449, 393, 449, 393, 449, 393, 449, 393, 1, 447, 394, 447, 395, 393, 1, 458, 394, 458, 395, 393, 1, 447, 394, 447, 449, 395, 449, 449, 393, 393, 450, 451, 452, 453, 454, 455, 456, 450, 451, 452, 453, 454, 455, 456, 449, 393, 449, 393, 449, 393, 449, 393, 1, 466, 394, 466, 395, 393, 1, 469, 394, 469, 395, 393, 1, 475, 394, 475, 395, 393, 1, 475, 394, 475, 449, 395, 449, 449, 393, 393, 450, 451, 452, 453, 454, 455, 456, 450, 451, 452, 453, 454, 455, 456, 449, 393, 449, 393, 449, 393, 449, 393, 1, 487, 394, 487, 395, 393, 1, 2445, 394, 2445, 395, 393, 1, 495, 394, 495, 395, 393, 1, 501, 26, 501, 39, 39, 39, 21, 21, 40, 60, 42, 43, 61, 45, 46, 40, 60, 42, 43, 61, 45, 46, 39, 21, 39, 21, 39, 21, 39, 21, 1, 504, 26, 504, 39, 39, 39, 21, 21, 40, 60, 42, 43, 61, 45, 46, 40, 60, 42, 43, 61, 45, 46, 39, 21, 39, 21, 39, 21, 39, 21, 1, 515, 26, 515, 21, 1, 524, 26, 524, 21, 1, 530, 26, 530, 21, 1, 533, 26, 533, 21, 1, 504, 26, 504, 21, 1, 524, 26, 524, 39, 39, 39, 21, 21, 40, 60, 42, 43, 61, 45, 46, 40, 60, 42, 43, 61, 45, 46, 39, 21, 39, 21, 39, 21, 39, 21, 1, 592, 26, 592, 21, 1, 596, 26, 596, 21, 1, 592, 26, 592, 39, 39, 39, 21, 21, 40, 60, 42, 43, 61, 45, 46, 40, 60, 42, 43, 61, 45, 46, 39, 21, 39, 21, 39, 21, 39, 21, 1, 613, 26, 613, 21, 1, 617, 26, 617, 21, 1, 620, 26, 620, 21, 1, 613, 26, 613, 39, 39, 39, 21, 21, 40, 60, 42, 43, 61, 45, 46, 40, 60, 42, 43, 61, 45, 46, 39, 21, 39, 21, 39, 21, 39, 21, 1, 635, 26, 635, 21, 1, 2446, 26, 2446, 21, 1, 643, 26, 643, 21, 1, 635, 26, 635, 39, 39, 39, 21, 21, 40, 60, 42, 43, 61, 45, 46, 40, 60, 42, 43, 61, 45, 46, 39, 21, 39, 21, 39, 21, 39, 21, 1, 660, 26, 660, 21, 1, 2447, 26, 2447, 21, 1, 668, 26, 668, 21, 1, 677, 26, 677, 21, 1, 688, 26, 688, 21, 1, 697, 26, 697, 21, 1, 703, 26, 703, 21, 1, 706, 26, 706, 21, 1, 677, 26, 677, 39, 39, 39, 21, 21, 40, 60, 42, 43, 61, 45, 46, 40, 60, 42, 43, 61, 45, 46, 39, 21, 39, 21, 39, 21, 39, 21, 1, 697, 26, 697, 39, 39, 39, 21, 21, 40, 60, 42, 43, 61, 45, 46, 40, 60, 42, 43, 61, 45, 46, 39, 21, 39, 21, 39, 21, 39, 21, 1, 763, 26, 763, 21, 1, 767, 26, 767, 21, 1, 763, 26, 763, 39, 39, 39, 21, 21, 40, 60, 42, 43, 61, 45, 46, 40, 60, 42, 43, 61, 45, 46, 39, 21, 39, 21, 39, 21, 39, 21, 1, 784, 26, 784, 21, 1, 788, 26, 788, 21, 1, 791, 26, 791, 21, 1, 784, 26, 784, 39, 39, 39, 21, 21, 40, 60, 42, 43, 61, 45, 46, 40, 60, 42, 43, 61, 45, 46, 39, 21, 39, 21, 39, 21, 39, 21, 1, 806, 26, 806, 21, 1, 2448, 26, 2448, 21, 1, 814, 26, 814, 21, 1, 806, 26, 806, 39, 39, 39, 21, 21, 40, 60, 42, 43, 61, 45, 46, 40, 60, 42, 43, 61, 45, 46, 39, 21, 39, 21, 39, 21, 39, 21, 1, 831, 26, 831, 21, 1, 2449, 26, 2449, 21, 1, 839, 26, 839, 21, 1, 831, 26, 831, 39, 39, 39, 21, 21, 40, 60, 42, 43, 61, 45, 46, 40, 60, 42, 43, 61, 45, 46, 39, 21, 39, 21, 39, 21, 39, 21, 1, 853, 26, 853, 21, 1, 857, 26, 857, 21, 1, 860, 26, 860, 21, 1, 868, 200, 868, 201, 199, 1, 879, 200, 879, 201, 199, 1, 888, 200, 888, 201, 199, 1, 893, 200, 893, 201, 199, 1, 896, 200, 896, 201, 199, 1, 868, 200, 868, 911, 201, 911, 911, 199, 199, 912, 913, 914, 915, 916, 917, 918, 912, 913, 914, 915, 916, 917, 918, 911, 199, 911, 199, 911, 199, 911, 199, 1, 909, 200, 909, 201, 199, 1, 920, 200, 920, 201, 199, 1, 909, 200, 909, 911, 201, 911, 911, 199, 199, 912, 913, 914, 915, 916, 917, 918, 912, 913, 914, 915, 916, 917, 918, 911, 199, 911, 199, 911, 199, 911, 199, 1, 928, 200, 928, 201, 199, 1, 931, 200, 931, 201, 199, 1, 937, 200, 937, 201, 199, 1, 937, 200, 937, 911, 201, 911, 911, 199, 199, 912, 913, 914, 915, 916, 917, 918, 912, 913, 914, 915, 916, 917, 918, 911, 199, 911, 199, 911, 199, 911, 199, 1, 949, 200, 949, 201, 199, 1, 2450, 200, 2450, 201, 199, 1, 957, 200, 957, 201, 199, 1, 949, 200, 949, 911, 201, 911, 911, 199, 199, 912, 913, 914, 915, 916, 917, 918, 912, 913, 914, 915, 916, 917, 918, 911, 199, 911, 199, 911, 199, 911, 199, 1, 1006, 200, 1006, 201, 199, 1, 2451, 200, 2451, 201, 199, 1, 1014, 200, 1014, 201, 199, 1, 1019, 26, 1019, 39, 39, 39, 21, 21, 40, 60, 42, 43, 61, 45, 46, 40, 60, 42, 43, 61, 45, 46, 39, 21, 39, 21, 39, 21, 39, 21, 1, 1006, 200, 1006, 911, 201, 911, 911, 199, 199, 912, 913, 914, 915, 916, 917, 918, 912, 913, 914, 915, 916, 917, 918, 911, 199, 911, 199, 911, 199, 911, 199, 1, 1030, 200, 1030, 201, 199, 1, 1033, 200, 1033, 201, 199, 1, 1030, 200, 1030, 911, 201, 911, 911, 199, 199, 912, 913, 914, 915, 916, 917, 918, 912, 913, 914, 915, 916, 917, 918, 911, 199, 911, 199, 911, 199, 911, 199, 1, 1045, 200, 1045, 201, 199, 1, 2452, 200, 2452, 201, 199, 1, 1053, 200, 1053, 201, 199, 1, 1059, 26, 1059, 39, 39, 39, 21, 21, 40, 60, 42, 43, 61, 45, 46, 40, 60, 42, 43, 61, 45, 46, 39, 21, 39, 21, 39, 21, 39, 21, 1, 1062, 26, 1062, 39, 39, 39, 21, 21, 40, 60, 42, 43, 61, 45, 46, 40, 60, 42, 43, 61, 45, 46, 39, 21, 39, 21, 39, 21, 39, 21, 1, 1073, 26, 1073, 21, 1, 1082, 26, 1082, 21, 1, 1088, 26, 1088, 21, 1, 1091, 26, 1091, 21, 1, 1062, 26, 1062, 21, 1, 1082, 26, 1082, 39, 39, 39, 21, 21, 40, 60, 42, 43, 61, 45, 46, 40, 60, 42, 43, 61, 45, 46, 39, 21, 39, 21, 39, 21, 39, 21, 1, 1150, 26, 1150, 21, 1, 1154, 26, 1154, 21, 1, 1150, 26, 1150, 39, 39, 39, 21, 21, 40, 60, 42, 43, 61, 45, 46, 40, 60, 42, 43, 61, 45, 46, 39, 21, 39, 21, 39, 21, 39, 21, 1, 1171, 26, 1171, 21, 1, 1175, 26, 1175, 21, 1, 1178, 26, 1178, 21, 1, 1171, 26, 1171, 39, 39, 39, 21, 21, 40, 60, 42, 43, 61, 45, 46, 40, 60, 42, 43, 61, 45, 46, 39, 21, 39, 21, 39, 21, 39, 21, 1, 1193, 26, 1193, 21, 1, 2453, 26, 2453, 21, 1, 1201, 26, 1201, 21, 1, 1193, 26, 1193, 39, 39, 39, 21, 21, 40, 60, 42, 43, 61, 45, 46, 40, 60, 42, 43, 61, 45, 46, 39, 21, 39, 21, 39, 21, 39, 21, 1, 1218, 26, 1218, 21, 1, 2454, 26, 2454, 21, 1, 1226, 26, 1226, 21, 1, 1218, 26, 1218, 39, 39, 39, 21, 21, 40, 60, 42, 43, 61, 45, 46, 40, 60, 42, 43, 61, 45, 46, 39, 21, 39, 21, 39, 21, 39, 21, 1, 1240, 26, 1240, 21, 1, 1244, 26, 1244, 21, 1, 1247, 26, 1247, 21, 1, 1240, 26, 1240, 39, 39, 39, 21, 21, 40, 60, 42, 43, 61, 45, 46, 40, 60, 42, 43, 61, 45, 46, 39, 21, 39, 21, 39, 21, 39, 21, 1, 1262, 26, 1262, 21, 1, 2455, 26, 2455, 21, 1, 1270, 26, 1270, 21, 1, 1262, 26, 1262, 39, 39, 39, 21, 21, 40, 60, 42, 43, 61, 45, 46, 40, 60, 42, 43, 61, 45, 46, 39, 21, 39, 21, 39, 21, 39, 21, 1, 1286, 26, 1286, 21, 1, 1291, 26, 1291, 21, 1, 1286, 26, 1286, 39, 39, 39, 21, 21, 40, 60, 42, 43, 61, 45, 46, 40, 60, 42, 43, 61, 45, 46, 39, 21, 39, 21, 39, 21, 39, 21, 1, 1045, 200, 1045, 911, 201, 911, 911, 199, 199, 912, 913, 914, 915, 916, 917, 918, 912, 913, 914, 915, 916, 917, 918, 911, 199, 911, 199, 911, 199, 911, 199, 1, 1312, 200, 1312, 201, 199, 1, 1317, 200, 1317, 201, 199, 1, 1312, 200, 1312, 911, 201, 911, 911, 199, 199, 912, 913, 914, 915, 916, 917, 918, 912, 913, 914, 915, 916, 917, 918, 911, 199, 911, 199, 911, 199, 911, 199, 1, 1337, 200, 1337, 201, 199, 1, 1341, 200, 1341, 201, 199, 1, 1344, 200, 1344, 201, 199, 1, 1351, 394, 1351, 449, 395, 449, 449, 393, 393, 450, 451, 452, 453, 454, 455, 456, 450, 451, 452, 453, 454, 455, 456, 449, 393, 449, 393, 449, 393, 449, 393, 1, 1364, 394, 1364, 395, 393, 1, 2456, 394, 2456, 395, 393, 1, 1372, 394, 1372, 395, 393, 1, 1364, 394, 1364, 449, 395, 449, 449, 393, 393, 450, 451, 452, 453, 454, 455, 456, 450, 451, 452, 453, 454, 455, 456, 449, 393, 449, 393, 449, 393, 449, 393, 1, 1418, 394, 1418, 395, 393, 1, 1422, 394, 1422, 395, 393, 1, 1425, 394, 1425, 395, 393, 1, 1432, 200, 1432, 911, 201, 911, 911, 199, 199, 912, 913, 914, 915, 916, 917, 918, 912, 913, 914, 915, 916, 917, 918, 911, 199, 911, 199, 911, 199, 911, 199, 1, 1418, 394, 1418, 449, 395, 449, 449, 393, 393, 450, 451, 452, 453, 454, 455, 456, 450, 451, 452, 453, 454, 455, 456, 449, 393, 449, 393, 449, 393, 449, 393, 1, 1445, 394, 1445, 395, 393, 1, 2457, 394, 2457, 395, 393, 1, 1453, 394, 1453, 395, 393, 1, 1445, 394, 1445, 449, 395, 449, 449, 393, 393, 450, 451, 452, 453, 454, 455, 456, 450, 451, 452, 453, 454, 455, 456, 449, 393, 449, 393, 449, 393, 449, 393, 1, 1466, 394, 1466, 395, 393, 1, 1471, 394, 1471, 395, 393, 1, 1466, 394, 1466, 449, 395, 449, 449, 393, 393, 450, 451, 452, 453, 454, 455, 456, 450, 451, 452, 453, 454, 455, 456, 449, 393, 449, 393, 449, 393, 449, 393, 1, 1337, 200, 1337, 911, 201, 911, 911, 199, 199, 912, 913, 914, 915, 916, 917, 918, 912, 913, 914, 915, 916, 917, 918, 911, 199, 911, 199, 911, 199, 911, 199, 1, 1495, 200, 1495, 201, 199, 1, 1499, 200, 1499, 201, 199, 1, 1495, 200, 1495, 911, 201, 911, 911, 199, 199, 912, 913, 914, 915, 916, 917, 918, 912, 913, 914, 915, 916, 917, 918, 911, 199, 911, 199, 911, 199, 911, 199, 1, 888, 200, 888, 911, 201, 911, 911, 199, 199, 912, 913, 914, 915, 916, 917, 918, 912, 913, 914, 915, 916, 917, 918, 911, 199, 911, 199, 911, 199, 911, 199, 1, 1555, 200, 1555, 201, 199, 1, 1559, 200, 1559, 201, 199, 1, 1555, 200, 1555, 911, 201, 911, 911, 199, 199, 912, 913, 914, 915, 916, 917, 918, 912, 913, 914, 915, 916, 917, 918, 911, 199, 911, 199, 911, 199, 911, 199, 1, 1576, 200, 1576, 201, 199, 1, 1579, 200, 1579, 201, 199, 1, 1582, 200, 1582, 201, 199, 1, 1576, 200, 1576, 911, 201, 911, 911, 199, 199, 912, 913, 914, 915, 916, 917, 918, 912, 913, 914, 915, 916, 917, 918, 911, 199, 911, 199, 911, 199, 911, 199, 1, 1594, 200, 1594, 201, 199, 1, 2458, 200, 2458, 201, 199, 1, 1601, 200, 1601, 201, 199, 1, 1594, 200, 1594, 911, 201, 911, 911, 199, 199, 912, 913, 914, 915, 916, 917, 918, 912, 913, 914, 915, 916, 917, 918, 911, 199, 911, 199, 911, 199, 911, 199, 1, 1614, 200, 1614, 201, 199, 1, 2459, 200, 2459, 201, 199, 1, 1621, 200, 1621, 201, 199, 1, 1614, 200, 1614, 911, 201, 911, 911, 199, 199, 912, 913, 914, 915, 916, 917, 918, 912, 913, 914, 915, 916, 917, 918, 911, 199, 911, 199, 911, 199, 911, 199, 1, 1631, 200, 1631, 201, 199, 1, 1634, 200, 1634, 201, 199, 1, 1631, 200, 1631, 911, 201, 911, 911, 199, 199, 912, 913, 914, 915, 916, 917, 918, 912, 913, 914, 915, 916, 917, 918, 911, 199, 911, 199, 911, 199, 911, 199, 1, 1646, 200, 1646, 201, 199, 1, 2460, 200, 2460, 201, 199, 1, 1653, 200, 1653, 201, 199, 1, 1646, 200, 1646, 911, 201, 911, 911, 199, 199, 912, 913, 914, 915, 916, 917, 918, 912, 913, 914, 915, 916, 917, 918, 911, 199, 911, 199, 911, 199, 911, 199, 1, 1665, 200, 1665, 201, 199, 1, 1670, 200, 1670, 201, 199, 1, 1665, 200, 1665, 911, 201, 911, 911, 199, 199, 912, 913, 914, 915, 916, 917, 918, 912, 913, 914, 915, 916, 917, 918, 911, 199, 911, 199, 911, 199, 911, 199, 1, 853, 26, 853, 39, 39, 39, 21, 21, 40, 60, 42, 43, 61, 45, 46, 40, 60, 42, 43, 61, 45, 46, 39, 21, 39, 21, 39, 21, 39, 21, 1, 1691, 26, 1691, 21, 1, 2461, 26, 2461, 21, 1, 1699, 26, 1699, 21, 1, 1691, 26, 1691, 39, 39, 39, 21, 21, 40, 60, 42, 43, 61, 45, 46, 40, 60, 42, 43, 61, 45, 46, 39, 21, 39, 21, 39, 21, 39, 21, 1, 1715, 26, 1715, 21, 1, 1720, 26, 1720, 21, 1, 1715, 26, 1715, 39, 39, 39, 21, 21, 40, 60, 42, 43, 61, 45, 46, 40, 60, 42, 43, 61, 45, 46, 39, 21, 39, 21, 39, 21, 39, 21, 1, 660, 26, 660, 39, 39, 39, 21, 21, 40, 60, 42, 43, 61, 45, 46, 40, 60, 42, 43, 61, 45, 46, 39, 21, 39, 21, 39, 21, 39, 21, 1, 1739, 26, 1739, 21, 1, 1743, 26, 1743, 21, 1, 1746, 26, 1746, 21, 1, 1739, 26, 1739, 39, 39, 39, 21, 21, 40, 60, 42, 43, 61, 45, 46, 40, 60, 42, 43, 61, 45, 46, 39, 21, 39, 21, 39, 21, 39, 21, 1, 1761, 26, 1761, 21, 1, 2462, 26, 2462, 21, 1, 1769, 26, 1769, 21, 1, 1761, 26, 1761, 39, 39, 39, 21, 21, 40, 60, 42, 43, 61, 45, 46, 40, 60, 42, 43, 61, 45, 46, 39, 21, 39, 21, 39, 21, 39, 21, 1, 1785, 26, 1785, 21, 1, 1790, 26, 1790, 21, 1, 1785, 26, 1785, 39, 39, 39, 21, 21, 40, 60, 42, 43, 61, 45, 46, 40, 60, 42, 43, 61, 45, 46, 39, 21, 39, 21, 39, 21, 39, 21, 1, 487, 394, 487, 449, 395, 449, 449, 393, 393, 450, 451, 452, 453, 454, 455, 456, 450, 451, 452, 453, 454, 455, 456, 449, 393, 449, 393, 449, 393, 449, 393, 1, 1811, 394, 1811, 395, 393, 1, 1814, 394, 1814, 395, 393, 1, 1811, 394, 1811, 449, 395, 449, 449, 393, 393, 450, 451, 452, 453, 454, 455, 456, 450, 451, 452, 453, 454, 455, 456, 449, 393, 449, 393, 449, 393, 449, 393, 1, 1829, 394, 1829, 395, 393, 1, 1833, 394, 1833, 395, 393, 1, 1829, 394, 1829, 449, 395, 449, 449, 393, 393, 450, 451, 452, 453, 454, 455, 456, 450, 451, 452, 453, 454, 455, 456, 449, 393, 449, 393, 449, 393, 449, 393, 1, 426, 394, 426, 449, 395, 449, 449, 393, 393, 450, 451, 452, 453, 454, 455, 456, 450, 451, 452, 453, 454, 455, 456, 449, 393, 449, 393, 449, 393, 449, 393, 1, 1889, 394, 1889, 395, 393, 1, 1893, 394, 1893, 395, 393, 1, 1889, 394, 1889, 449, 395, 449, 449, 393, 393, 450, 451, 452, 453, 454, 455, 456, 450, 451, 452, 453, 454, 455, 456, 449, 393, 449, 393, 449, 393, 449, 393, 1, 1910, 394, 1910, 395, 393, 1, 1913, 394, 1913, 395, 393, 1, 1910, 394, 1910, 449, 395, 449, 449, 393, 393, 450, 451, 452, 453, 454, 455, 456, 450, 451, 452, 453, 454, 455, 456, 449, 393, 449, 393, 449, 393, 449, 393, 1, 1925, 394, 1925, 395, 393, 1, 2463, 394, 2463, 395, 393, 1, 1932, 394, 1932, 395, 393, 1, 1925, 394, 1925, 449, 395, 449, 449, 393, 393, 450, 451, 452, 453, 454, 455, 456, 450, 451, 452, 453, 454, 455, 456, 449, 393, 449, 393, 449, 393, 449, 393, 1, 1945, 394, 1945, 395, 393, 1, 2464, 394, 2464, 395, 393, 1, 1952, 394, 1952, 395, 393, 1, 1945, 394, 1945, 449, 395, 449, 449, 393, 393, 450, 451, 452, 453, 454, 455, 456, 450, 451, 452, 453, 454, 455, 456, 449, 393, 449, 393, 449, 393, 449, 393, 1, 1962, 394, 1962, 395, 393, 1, 1965, 394, 1965, 395, 393, 1, 1968, 394, 1968, 395, 393, 1, 1962, 394, 1962, 449, 395, 449, 449, 393, 393, 450, 451, 452, 453, 454, 455, 456, 450, 451, 452, 453, 454, 455, 456, 449, 393, 449, 393, 449, 393, 449, 393, 1, 1980, 394, 1980, 395, 393, 1, 2465, 394, 2465, 395, 393, 1, 1987, 394, 1987, 395, 393, 1, 1980, 394, 1980, 449, 395, 449, 449, 393, 393, 450, 451, 452, 453, 454, 455, 456, 450, 451, 452, 453, 454, 455, 456, 449, 393, 449, 393, 449, 393, 449, 393, 1, 1999, 394, 1999, 395, 393, 1, 2004, 394, 2004, 395, 393, 1, 1999, 394, 1999, 449, 395, 449, 449, 393, 393, 450, 451, 452, 453, 454, 455, 456, 450, 451, 452, 453, 454, 455, 456, 449, 393, 449, 393, 449, 393, 449, 393, 1, 378, 26, 378, 39, 39, 39, 21, 21, 40, 60, 42, 43, 61, 45, 46, 40, 60, 42, 43, 61, 45, 46, 39, 21, 39, 21, 39, 21, 39, 21, 1, 2025, 26, 2025, 21, 1, 2466, 26, 2466, 21, 1, 2033, 26, 2033, 21, 1, 2025, 26, 2025, 39, 39, 39, 21, 21, 40, 60, 42, 43, 61, 45, 46, 40, 60, 42, 43, 61, 45, 46, 39, 21, 39, 21, 39, 21, 39, 21, 1, 2046, 26, 2046, 21, 1, 2467, 26, 2467, 21, 1, 2054, 26, 2054, 21, 1, 2046, 26, 2046, 39, 39, 39, 21, 21, 40, 60, 42, 43, 61, 45, 46, 40, 60, 42, 43, 61, 45, 46, 39, 21, 39, 21, 39, 21, 39, 21, 1, 2064, 26, 2064, 21, 1, 2068, 26, 2068, 21, 1, 2071, 26, 2071, 21, 1, 2064, 26, 2064, 39, 39, 39, 21, 21, 40, 60, 42, 43, 61, 45, 46, 40, 60, 42, 43, 61, 45, 46, 39, 21, 39, 21, 39, 21, 39, 21, 1, 2086, 26, 2086, 21, 1, 2468, 26, 2468, 21, 1, 2094, 26, 2094, 21, 1, 2086, 26, 2086, 39, 39, 39, 21, 21, 40, 60, 42, 43, 61, 45, 46, 40, 60, 42, 43, 61, 45, 46, 39, 21, 39, 21, 39, 21, 39, 21, 1, 2106, 26, 2106, 21, 1, 2111, 26, 2111, 21, 1, 2106, 26, 2106, 39, 39, 39, 21, 21, 40, 60, 42, 43, 61, 45, 46, 40, 60, 42, 43, 61, 45, 46, 39, 21, 39, 21, 39, 21, 39, 21, 1, 186, 26, 186, 39, 39, 39, 21, 21, 40, 60, 42, 43, 61, 45, 46, 40, 60, 42, 43, 61, 45, 46, 39, 21, 39, 21, 39, 21, 39, 21, 1, 2132, 26, 2132, 21, 1, 2136, 26, 2136, 21, 1, 2139, 26, 2139, 21, 1, 2132, 26, 2132, 39, 39, 39, 21, 21, 40, 60, 42, 43, 61, 45, 46, 40, 60, 42, 43, 61, 45, 46, 39, 21, 39, 21, 39, 21, 39, 21, 1, 2155, 26, 2155, 21, 1, 2159, 26, 2159, 21, 1, 2155, 26, 2155, 39, 39, 39, 21, 21, 40, 60, 42, 43, 61, 45, 46, 40, 60, 42, 43, 61, 45, 46, 39, 21, 39, 21, 39, 21, 39, 21, 1, 2176, 26, 2176, 21, 1, 2180, 26, 2180, 21, 1, 2183, 26, 2183, 21, 1, 2187, 394, 2187, 395, 393, 1, 2196, 26, 2196, 39, 39, 39, 21, 21, 40, 60, 42, 43, 61, 45, 46, 40, 60, 42, 43, 61, 45, 46, 39, 21, 39, 21, 39, 21, 39, 21, 1, 2199, 26, 2199, 39, 39, 39, 21, 21, 40, 60, 42, 43, 61, 45, 46, 40, 60, 42, 43, 61, 45, 46, 39, 21, 39, 21, 39, 21, 39, 21, 1, 2210, 26, 2210, 21, 1, 2219, 26, 2219, 21, 1, 2224, 26, 2224, 21, 1, 2199, 26, 2199, 21, 1, 2219, 26, 2219, 39, 39, 39, 21, 21, 40, 60, 42, 43, 61, 45, 46, 40, 60, 42, 43, 61, 45, 46, 39, 21, 39, 21, 39, 21, 39, 21, 1, 2280, 26, 2280, 21, 1, 2284, 26, 2284, 21, 1, 2280, 26, 2280, 39, 39, 39, 21, 21, 40, 60, 42, 43, 61, 45, 46, 40, 60, 42, 43, 61, 45, 46, 39, 21, 39, 21, 39, 21, 39, 21, 1, 2301, 26, 2301, 21, 1, 2305, 26, 2305, 21, 1, 2308, 26, 2308, 21, 1, 2301, 26, 2301, 39, 39, 39, 21, 21, 40, 60, 42, 43, 61, 45, 46, 40, 60, 42, 43, 61, 45, 46, 39, 21, 39, 21, 39, 21, 39, 21, 1, 2323, 26, 2323, 21, 1, 2469, 26, 2469, 21, 1, 2323, 26, 2323, 39, 39, 39, 21, 21, 40, 60, 42, 43, 61, 45, 46, 40, 60, 42, 43, 61, 45, 46, 39, 21, 39, 21, 39, 21, 39, 21, 1, 2340, 26, 2340, 21, 1, 2470, 26, 2470, 21, 1, 2340, 26, 2340, 39, 39, 39, 21, 21, 40, 60, 42, 43, 61, 45, 46, 40, 60, 42, 43, 61, 45, 46, 39, 21, 39, 21, 39, 21, 39, 21, 1, 2354, 26, 2354, 21, 1, 2358, 26, 2358, 21, 1, 2361, 26, 2361, 21, 1, 2354, 26, 2354, 39, 39, 39, 21, 21, 40, 60, 42, 43, 61, 45, 46, 40, 60, 42, 43, 61, 45, 46, 39, 21, 39, 21, 39, 21, 39, 21, 1, 2376, 26, 2376, 21, 1, 2471, 26, 2471, 21, 1, 2376, 26, 2376, 39, 39, 39, 21, 21, 40, 60, 42, 43, 61, 45, 46, 40, 60, 42, 43, 61, 45, 46, 39, 21, 39, 21, 39, 21, 39, 21, 1, 2392, 26, 2392, 21, 1, 2397, 26, 2397, 21, 1, 2392, 26, 2392, 39, 39, 39, 21, 21, 40, 60, 42, 43, 61, 45, 46, 40, 60, 42, 43, 61, 45, 46, 39, 21, 39, 21, 39, 21, 39, 21, 1, 2176, 26, 2176, 39, 39, 39, 21, 21, 40, 60, 42, 43, 61, 45, 46, 40, 60, 42, 43, 61, 45, 46, 39, 21, 39, 21, 39, 21, 39, 21, 1, 2416, 26, 2416, 21, 1, 2420, 26, 2420, 21, 1, 2423, 26, 2423, 21, 1, 2427, 200, 2427, 201, 199, 1, 2416, 26, 2416, 39, 39, 39, 21, 21, 40, 60, 42, 43, 61, 45, 46, 40, 60, 42, 43, 61, 45, 46, 39, 21, 39, 21, 39, 21, 39, 21, 1, 0]; _tsip_machine_parser_header_WWW_Authenticate_trans_targs = [2, 0, 1736, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 23, 1734, 26, 1728, 22, 1738, 24, 1739, 25, 27, 28, 29, 30, 31, 32, 31, 32, 34, 41, 1536, 56, 110, 1712, 146, 164, 1740, 33, 35, 42, 34, 38, 44, 35, 36, 38, 1741, 37, 39, 43, 129, 1742, 40, 1520, 1743, 1505, 45, 73, 49, 74, 1744, 46, 47, 1745, 48, 50, 51, 206, 1746, 52, 55, 52, 53, 1747, 54, 1748, 57, 58, 59, 60, 61, 109, 64, 61, 62, 1749, 63, 64, 65, 69, 1750, 66, 67, 1751, 68, 69, 70, 71, 72, 1752, 52, 55, 38, 75, 108, 76, 79, 77, 78, 80, 95, 81, 93, 82, 83, 91, 84, 85, 89, 86, 87, 88, 90, 92, 94, 96, 104, 97, 100, 98, 99, 101, 102, 103, 105, 106, 107, 1753, 111, 112, 113, 114, 115, 116, 128, 119, 116, 117, 1754, 118, 119, 120, 124, 1755, 121, 122, 1756, 123, 124, 125, 126, 127, 1757, 52, 55, 38, 1758, 130, 131, 132, 1504, 135, 132, 133, 1759, 134, 136, 140, 1760, 137, 138, 1761, 139, 141, 183, 184, 143, 185, 141, 142, 143, 1762, 143, 144, 1763, 145, 55, 147, 148, 149, 150, 151, 163, 154, 151, 152, 1764, 153, 154, 155, 159, 1765, 156, 157, 1766, 158, 159, 160, 161, 162, 1767, 52, 55, 38, 1768, 165, 166, 167, 168, 169, 182, 172, 169, 170, 1769, 171, 173, 175, 180, 1770, 174, 176, 177, 178, 179, 52, 55, 38, 181, 1771, 183, 184, 185, 1772, 186, 186, 187, 191, 1773, 188, 189, 1774, 190, 192, 194, 244, 261, 1429, 1443, 1458, 1471, 1485, 1775, 193, 195, 243, 194, 191, 198, 195, 196, 1776, 197, 199, 207, 203, 208, 1777, 200, 201, 1778, 202, 204, 189, 204, 205, 1779, 209, 242, 210, 213, 211, 212, 214, 229, 215, 227, 216, 217, 225, 218, 219, 223, 220, 221, 222, 224, 226, 228, 230, 238, 231, 234, 232, 233, 235, 236, 237, 239, 240, 241, 1780, 245, 246, 247, 248, 249, 250, 251, 252, 253, 260, 256, 253, 254, 1781, 255, 257, 259, 1782, 258, 204, 189, 259, 191, 1783, 262, 263, 264, 265, 266, 267, 1428, 270, 267, 268, 1784, 269, 271, 275, 1785, 272, 273, 1786, 274, 276, 278, 297, 282, 143, 284, 283, 276, 277, 143, 1787, 278, 279, 282, 284, 283, 1788, 280, 281, 1789, 186, 285, 287, 1324, 1341, 1354, 1368, 1383, 1395, 1409, 1790, 286, 288, 1323, 287, 284, 291, 288, 289, 1791, 290, 292, 296, 1287, 1792, 293, 294, 1793, 295, 278, 297, 1794, 299, 306, 298, 302, 308, 299, 300, 302, 1795, 301, 303, 298, 305, 307, 318, 917, 968, 984, 998, 1796, 304, 1271, 1797, 1259, 309, 313, 931, 1798, 310, 311, 1799, 312, 314, 317, 314, 315, 1800, 316, 1801, 319, 320, 321, 322, 323, 1258, 326, 323, 324, 1802, 325, 326, 327, 331, 1803, 328, 329, 1804, 330, 331, 331, 332, 336, 1805, 333, 334, 1806, 335, 337, 339, 389, 406, 422, 437, 1211, 1224, 1239, 1807, 338, 340, 388, 339, 336, 343, 340, 341, 1808, 342, 344, 349, 348, 352, 1809, 345, 346, 1810, 347, 204, 189, 191, 350, 334, 350, 351, 1811, 353, 387, 354, 357, 367, 355, 356, 358, 374, 359, 372, 360, 361, 370, 362, 363, 368, 364, 365, 366, 369, 371, 373, 375, 383, 376, 379, 377, 378, 380, 381, 382, 384, 385, 386, 1812, 390, 391, 392, 393, 394, 395, 396, 397, 398, 405, 401, 398, 399, 1813, 400, 402, 404, 1814, 403, 350, 334, 404, 336, 1815, 407, 408, 409, 410, 411, 412, 421, 415, 412, 413, 1816, 414, 416, 420, 1817, 417, 418, 1818, 419, 278, 297, 284, 1819, 423, 424, 425, 426, 427, 436, 430, 427, 428, 1820, 429, 430, 431, 435, 1821, 432, 433, 1822, 434, 435, 350, 334, 336, 1823, 438, 439, 440, 441, 442, 443, 1210, 446, 443, 444, 1824, 445, 446, 447, 451, 1825, 448, 449, 1826, 450, 451, 452, 469, 455, 452, 453, 455, 1827, 454, 456, 458, 507, 524, 540, 555, 571, 1176, 1191, 1828, 457, 459, 506, 458, 455, 462, 459, 460, 1829, 461, 463, 468, 467, 470, 1830, 464, 465, 1831, 466, 204, 189, 191, 452, 469, 1832, 471, 505, 472, 475, 485, 473, 474, 476, 492, 477, 490, 478, 479, 488, 480, 481, 486, 482, 483, 484, 487, 489, 491, 493, 501, 494, 497, 495, 496, 498, 499, 500, 502, 503, 504, 1833, 508, 509, 510, 511, 512, 513, 514, 515, 516, 523, 519, 516, 517, 1834, 518, 520, 522, 1835, 521, 452, 469, 522, 455, 1836, 525, 526, 527, 528, 529, 530, 539, 533, 530, 531, 1837, 532, 534, 538, 1838, 535, 536, 1839, 537, 278, 297, 284, 1840, 541, 542, 543, 544, 545, 554, 548, 545, 546, 1841, 547, 548, 549, 553, 1842, 550, 551, 1843, 552, 553, 350, 334, 336, 1844, 556, 557, 558, 559, 560, 561, 570, 564, 561, 562, 1845, 563, 564, 565, 569, 1846, 566, 567, 1847, 568, 569, 452, 469, 455, 1848, 572, 573, 574, 1175, 577, 574, 575, 1849, 576, 578, 582, 1850, 579, 580, 1851, 581, 583, 599, 586, 583, 584, 586, 1852, 585, 587, 589, 1071, 1088, 1103, 1117, 1132, 1142, 1156, 1853, 588, 590, 1070, 589, 586, 593, 590, 591, 1854, 592, 594, 598, 1034, 1855, 595, 596, 1856, 597, 583, 599, 1857, 601, 608, 600, 604, 610, 601, 602, 604, 1858, 603, 605, 600, 607, 609, 620, 670, 688, 698, 881, 1859, 606, 1018, 1860, 900, 611, 615, 633, 1861, 612, 613, 1862, 614, 616, 619, 616, 617, 1863, 618, 1864, 621, 622, 623, 624, 625, 669, 628, 625, 626, 1865, 627, 628, 629, 331, 1866, 630, 631, 1867, 632, 331, 634, 668, 635, 638, 648, 636, 637, 639, 655, 640, 653, 641, 642, 651, 643, 644, 649, 645, 646, 647, 650, 652, 654, 656, 664, 657, 660, 658, 659, 661, 662, 663, 665, 666, 667, 1868, 671, 672, 673, 674, 675, 676, 687, 679, 676, 677, 1869, 678, 679, 680, 684, 1870, 681, 682, 1871, 683, 684, 684, 685, 1872, 686, 469, 1873, 689, 690, 691, 697, 694, 691, 692, 1874, 693, 695, 1875, 696, 1876, 699, 700, 701, 702, 703, 880, 706, 703, 704, 1877, 705, 706, 707, 711, 1878, 708, 709, 1879, 710, 711, 711, 712, 716, 1880, 713, 714, 1881, 715, 717, 719, 769, 786, 802, 817, 833, 846, 861, 1882, 718, 720, 768, 719, 716, 723, 720, 721, 1883, 722, 724, 729, 728, 732, 1884, 725, 726, 1885, 727, 204, 189, 191, 730, 714, 730, 731, 1886, 733, 767, 734, 737, 747, 735, 736, 738, 754, 739, 752, 740, 741, 750, 742, 743, 748, 744, 745, 746, 749, 751, 753, 755, 763, 756, 759, 757, 758, 760, 761, 762, 764, 765, 766, 1887, 770, 771, 772, 773, 774, 775, 776, 777, 778, 785, 781, 778, 779, 1888, 780, 782, 784, 1889, 783, 730, 714, 784, 716, 1890, 787, 788, 789, 790, 791, 792, 801, 795, 792, 793, 1891, 794, 796, 800, 1892, 797, 798, 1893, 799, 278, 297, 284, 1894, 803, 804, 805, 806, 807, 816, 810, 807, 808, 1895, 809, 810, 811, 815, 1896, 812, 813, 1897, 814, 815, 350, 334, 336, 1898, 818, 819, 820, 821, 822, 823, 832, 826, 823, 824, 1899, 825, 826, 827, 831, 1900, 828, 829, 1901, 830, 831, 452, 469, 455, 1902, 834, 835, 836, 845, 839, 836, 837, 1903, 838, 840, 844, 1904, 841, 842, 1905, 843, 583, 599, 586, 1906, 847, 848, 849, 850, 851, 860, 854, 851, 852, 1907, 853, 854, 855, 859, 1908, 856, 857, 1909, 858, 859, 730, 714, 716, 1910, 862, 863, 864, 865, 866, 879, 869, 866, 867, 1911, 868, 870, 872, 877, 1912, 871, 873, 874, 875, 876, 730, 714, 716, 878, 1913, 1914, 882, 883, 884, 885, 886, 899, 889, 886, 887, 1915, 888, 890, 892, 897, 1916, 891, 893, 894, 895, 896, 616, 619, 604, 898, 1917, 901, 902, 903, 904, 905, 1017, 908, 905, 906, 1918, 907, 909, 913, 1919, 910, 911, 1920, 912, 914, 915, 284, 914, 915, 1921, 916, 297, 918, 919, 920, 921, 922, 923, 967, 926, 923, 924, 1922, 925, 926, 927, 684, 1923, 928, 929, 1924, 930, 684, 932, 966, 933, 936, 946, 934, 935, 937, 953, 938, 951, 939, 940, 949, 941, 942, 947, 943, 944, 945, 948, 950, 952, 954, 962, 955, 958, 956, 957, 959, 960, 961, 963, 964, 965, 1925, 969, 970, 971, 983, 974, 971, 972, 1926, 973, 975, 979, 1927, 976, 977, 1928, 978, 980, 981, 586, 980, 981, 1929, 982, 599, 1930, 985, 986, 987, 988, 989, 997, 992, 989, 990, 1931, 991, 992, 993, 711, 1932, 994, 995, 1933, 996, 711, 1934, 999, 1000, 1001, 1002, 1003, 1016, 1006, 1003, 1004, 1935, 1005, 1007, 1009, 1014, 1936, 1008, 1010, 1011, 1012, 1013, 314, 317, 302, 1015, 1937, 1938, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1033, 1029, 1026, 1027, 1939, 1028, 1030, 1032, 1940, 1031, 616, 619, 1032, 604, 1941, 1035, 1069, 1036, 1039, 1049, 1037, 1038, 1040, 1056, 1041, 1054, 1042, 1043, 1052, 1044, 1045, 1050, 1046, 1047, 1048, 1051, 1053, 1055, 1057, 1065, 1058, 1061, 1059, 1060, 1062, 1063, 1064, 1066, 1067, 1068, 1942, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1087, 1083, 1080, 1081, 1943, 1082, 1084, 1086, 1944, 1085, 583, 599, 1086, 586, 1945, 1089, 1090, 1091, 1092, 1093, 1094, 1102, 1097, 1094, 1095, 1946, 1096, 1098, 1947, 1099, 1100, 1948, 1101, 1949, 1104, 1105, 1106, 1107, 1108, 1116, 1111, 1108, 1109, 1950, 1110, 1111, 1112, 1951, 1113, 1114, 1952, 1115, 1953, 1118, 1119, 1120, 1121, 1122, 1123, 1131, 1126, 1123, 1124, 1954, 1125, 1126, 1127, 1955, 1128, 1129, 1956, 1130, 1957, 1133, 1134, 1135, 1141, 1138, 1135, 1136, 1958, 1137, 1139, 1959, 1140, 1960, 1143, 1144, 1145, 1146, 1147, 1155, 1150, 1147, 1148, 1961, 1149, 1150, 1151, 1962, 1152, 1153, 1963, 1154, 1964, 1157, 1158, 1159, 1160, 1161, 1174, 1164, 1161, 1162, 1965, 1163, 1165, 1167, 1172, 1966, 1166, 1168, 1169, 1170, 1171, 583, 599, 586, 1173, 1967, 1968, 1177, 1178, 1179, 1180, 1181, 1190, 1184, 1181, 1182, 1969, 1183, 1184, 1185, 1189, 1970, 1186, 1187, 1971, 1188, 1189, 730, 714, 716, 1972, 1192, 1193, 1194, 1195, 1196, 1209, 1199, 1196, 1197, 1973, 1198, 1200, 1202, 1207, 1974, 1201, 1203, 1204, 1205, 1206, 452, 469, 455, 1208, 1975, 1976, 1212, 1213, 1214, 1223, 1217, 1214, 1215, 1977, 1216, 1218, 1222, 1978, 1219, 1220, 1979, 1221, 583, 599, 586, 1980, 1225, 1226, 1227, 1228, 1229, 1238, 1232, 1229, 1230, 1981, 1231, 1232, 1233, 1237, 1982, 1234, 1235, 1983, 1236, 1237, 730, 714, 716, 1984, 1240, 1241, 1242, 1243, 1244, 1257, 1247, 1244, 1245, 1985, 1246, 1248, 1250, 1255, 1986, 1249, 1251, 1252, 1253, 1254, 350, 334, 336, 1256, 1987, 1988, 1260, 1261, 1262, 1263, 1264, 1270, 1267, 1264, 1265, 1989, 1266, 1268, 1990, 1269, 1991, 1272, 1273, 1274, 1275, 1276, 1277, 1278, 1279, 1286, 1282, 1279, 1280, 1992, 1281, 1283, 1285, 1993, 1284, 314, 317, 1285, 302, 1994, 1288, 1322, 1289, 1292, 1302, 1290, 1291, 1293, 1309, 1294, 1307, 1295, 1296, 1305, 1297, 1298, 1303, 1299, 1300, 1301, 1304, 1306, 1308, 1310, 1318, 1311, 1314, 1312, 1313, 1315, 1316, 1317, 1319, 1320, 1321, 1995, 1325, 1326, 1327, 1328, 1329, 1330, 1331, 1332, 1333, 1340, 1336, 1333, 1334, 1996, 1335, 1337, 1339, 1997, 1338, 278, 297, 1339, 284, 1998, 1342, 1343, 1344, 1345, 1346, 1347, 1353, 1350, 1347, 1348, 1999, 1349, 1351, 2000, 1352, 2001, 1355, 1356, 1357, 1358, 1359, 1367, 1362, 1359, 1360, 2002, 1361, 1362, 1363, 2003, 1364, 1365, 2004, 1366, 2005, 1369, 1370, 1371, 1372, 1373, 1374, 1382, 1377, 1374, 1375, 2006, 1376, 1377, 1378, 2007, 1379, 1380, 2008, 1381, 2009, 1384, 1385, 1386, 1394, 1389, 1386, 1387, 2010, 1388, 1390, 2011, 1391, 1392, 2012, 1393, 2013, 1396, 1397, 1398, 1399, 1400, 1408, 1403, 1400, 1401, 2014, 1402, 1403, 1404, 2015, 1405, 1406, 2016, 1407, 2017, 1410, 1411, 1412, 1413, 1414, 1427, 1417, 1414, 1415, 2018, 1416, 1418, 1420, 1425, 2019, 1419, 1421, 1422, 1423, 1424, 278, 297, 284, 1426, 2020, 2021, 1430, 1431, 1432, 1433, 1434, 1442, 1437, 1434, 1435, 2022, 1436, 1437, 1438, 367, 2023, 1439, 1440, 2024, 1441, 2025, 1444, 1445, 1446, 1447, 1448, 1449, 1457, 1452, 1449, 1450, 2026, 1451, 1452, 1453, 485, 2027, 1454, 1455, 2028, 1456, 2029, 1459, 1460, 1461, 1470, 1464, 1461, 1462, 2030, 1463, 1465, 1469, 2031, 1466, 1467, 2032, 1468, 583, 599, 586, 2033, 1472, 1473, 1474, 1475, 1476, 1484, 1479, 1476, 1477, 2034, 1478, 1479, 1480, 747, 2035, 1481, 1482, 2036, 1483, 2037, 1486, 1487, 1488, 1489, 1490, 1503, 1493, 1490, 1491, 2038, 1492, 1494, 1496, 1501, 2039, 1495, 1497, 1498, 1499, 1500, 204, 189, 191, 1502, 2040, 2041, 1506, 1507, 1508, 1509, 1510, 1519, 1513, 1510, 1511, 2042, 1512, 1514, 1518, 2043, 1515, 1516, 2044, 1517, 281, 2045, 1521, 1522, 1523, 1524, 1525, 1526, 1527, 1528, 1535, 1531, 1528, 1529, 2046, 1530, 1532, 1534, 2047, 1533, 52, 55, 1534, 38, 2048, 1537, 1538, 1539, 1540, 1541, 1542, 1711, 1545, 1542, 1543, 2049, 1544, 1546, 1550, 2050, 1547, 1548, 2051, 1549, 1551, 1552, 1553, 1551, 1552, 1553, 2052, 1554, 1554, 1555, 1559, 2053, 1556, 1557, 2054, 1558, 1560, 1562, 1609, 1626, 1642, 1654, 1667, 1680, 1692, 2055, 1561, 1563, 1608, 1562, 1559, 1566, 1563, 1564, 2056, 1565, 1567, 1569, 1572, 2057, 1568, 1570, 1557, 1570, 1571, 2058, 1573, 1607, 1574, 1577, 1587, 1575, 1576, 1578, 1594, 1579, 1592, 1580, 1581, 1590, 1582, 1583, 1588, 1584, 1585, 1586, 1589, 1591, 1593, 1595, 1603, 1596, 1599, 1597, 1598, 1600, 1601, 1602, 1604, 1605, 1606, 2059, 1610, 1611, 1612, 1613, 1614, 1615, 1616, 1617, 1618, 1625, 1621, 1618, 1619, 2060, 1620, 1622, 1624, 2061, 1623, 1570, 1557, 1624, 1559, 2062, 1627, 1628, 1629, 1630, 1631, 1632, 1641, 1635, 1632, 1633, 2063, 1634, 1636, 1640, 2064, 1637, 1638, 2065, 1639, 278, 297, 284, 2066, 1643, 1644, 1645, 1646, 1647, 1653, 1650, 1647, 1648, 2067, 1649, 1650, 1651, 2068, 1652, 2069, 1655, 1656, 1657, 1658, 1659, 1660, 1666, 1663, 1660, 1661, 2070, 1662, 1663, 1664, 2071, 1665, 2072, 1668, 1669, 1670, 1679, 1673, 1670, 1671, 2073, 1672, 1674, 1678, 2074, 1675, 1676, 2075, 1677, 583, 599, 586, 2076, 1681, 1682, 1683, 1684, 1685, 1691, 1688, 1685, 1686, 2077, 1687, 1688, 1689, 2078, 1690, 2079, 1693, 1694, 1695, 1696, 1697, 1710, 1700, 1697, 1698, 2080, 1699, 1701, 1703, 1708, 2081, 1702, 1704, 1705, 1706, 1707, 1570, 1557, 1559, 1709, 2082, 2083, 1713, 1714, 1715, 1727, 1718, 1715, 1716, 2084, 1717, 1719, 1723, 2085, 1720, 1721, 2086, 1722, 1724, 1725, 1726, 1724, 1725, 1726, 2087, 1554, 2088, 1729, 1730, 1731, 1732, 1733, 31, 32, 1735, 1737, 66, 121, 156, 328, 432, 448, 550, 566, 630, 681, 708, 812, 828, 856, 928, 994, 1113, 1128, 1152, 1186, 1234, 1364, 1379, 1405, 1439, 1454, 1481, 1652, 1665, 1690]; _tsip_machine_parser_header_WWW_Authenticate_trans_actions = [9, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 0, 27, 0, 0, 0, 0, 0, 5, 5, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 27, 0, 25, 25, 0, 25, 0, 0, 0, 0, 27, 0, 0, 1, 1, 27, 0, 0, 27, 0, 0, 0, 0, 0, 27, 0, 0, 27, 0, 0, 0, 0, 27, 25, 25, 0, 0, 27, 0, 27, 0, 0, 0, 0, 25, 25, 0, 0, 0, 27, 0, 1, 1, 1, 27, 1, 1, 27, 0, 0, 0, 0, 0, 27, 15, 15, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 0, 0, 0, 0, 0, 25, 25, 0, 0, 0, 27, 0, 1, 1, 1, 27, 1, 1, 27, 0, 0, 0, 0, 0, 27, 17, 17, 17, 27, 0, 0, 25, 25, 0, 0, 0, 27, 0, 0, 0, 27, 0, 0, 27, 0, 1, 1, 1, 38, 1, 0, 0, 23, 27, 0, 0, 27, 0, 0, 0, 0, 0, 0, 25, 25, 0, 0, 0, 27, 0, 1, 1, 1, 27, 1, 1, 27, 0, 0, 0, 0, 0, 27, 11, 11, 11, 27, 0, 0, 0, 0, 25, 25, 0, 0, 0, 27, 0, 0, 1, 1, 27, 0, 0, 0, 0, 0, 19, 19, 19, 0, 27, 0, 0, 0, 27, 23, 0, 0, 0, 27, 0, 0, 27, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 27, 0, 25, 25, 0, 25, 0, 0, 0, 27, 0, 0, 0, 0, 0, 27, 0, 0, 27, 0, 25, 25, 0, 0, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 0, 0, 0, 0, 0, 0, 0, 0, 25, 25, 0, 0, 0, 27, 0, 0, 1, 27, 0, 21, 21, 0, 21, 27, 0, 0, 0, 0, 0, 25, 25, 0, 0, 0, 27, 0, 0, 0, 27, 0, 0, 27, 0, 1, 41, 41, 1, 29, 41, 1, 0, 0, 13, 27, 0, 0, 0, 0, 0, 27, 0, 0, 27, 13, 0, 1, 1, 1, 1, 1, 1, 1, 1, 27, 0, 25, 25, 0, 25, 0, 0, 0, 27, 0, 0, 0, 0, 27, 0, 0, 27, 0, 25, 25, 27, 25, 25, 0, 25, 0, 0, 0, 0, 27, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 27, 0, 0, 27, 0, 0, 0, 0, 27, 0, 0, 27, 0, 25, 25, 0, 0, 27, 0, 27, 0, 0, 0, 0, 25, 25, 0, 0, 0, 27, 0, 1, 1, 47, 27, 1, 1, 27, 0, 13, 0, 0, 0, 27, 0, 0, 27, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 27, 0, 25, 25, 0, 25, 0, 0, 0, 27, 0, 0, 0, 0, 0, 27, 0, 0, 27, 0, 15, 15, 15, 25, 25, 0, 0, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 0, 0, 0, 0, 0, 0, 0, 0, 25, 25, 0, 0, 0, 27, 0, 0, 1, 27, 0, 21, 21, 0, 21, 27, 0, 0, 0, 0, 0, 25, 25, 0, 0, 0, 27, 0, 0, 0, 27, 0, 0, 27, 0, 32, 32, 32, 27, 0, 0, 0, 0, 25, 25, 0, 0, 0, 27, 0, 1, 1, 1, 27, 1, 1, 27, 0, 0, 15, 15, 15, 27, 0, 0, 0, 0, 0, 25, 25, 0, 0, 0, 27, 0, 1, 1, 1, 27, 1, 1, 27, 0, 0, 15, 15, 15, 0, 0, 0, 27, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 27, 0, 25, 25, 0, 25, 0, 0, 0, 27, 0, 0, 0, 0, 0, 27, 0, 0, 27, 0, 17, 17, 17, 25, 25, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 0, 0, 0, 0, 0, 0, 0, 0, 25, 25, 0, 0, 0, 27, 0, 0, 1, 27, 0, 21, 21, 0, 21, 27, 0, 0, 0, 0, 0, 25, 25, 0, 0, 0, 27, 0, 0, 0, 27, 0, 0, 27, 0, 35, 35, 35, 27, 0, 0, 0, 0, 25, 25, 0, 0, 0, 27, 0, 1, 1, 1, 27, 1, 1, 27, 0, 0, 17, 17, 17, 27, 0, 0, 0, 0, 0, 25, 25, 0, 0, 0, 27, 0, 1, 1, 1, 27, 1, 1, 27, 0, 0, 17, 17, 17, 27, 0, 0, 25, 25, 0, 0, 0, 27, 0, 0, 0, 27, 0, 0, 27, 0, 53, 53, 53, 0, 0, 0, 27, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 27, 0, 25, 25, 0, 25, 0, 0, 0, 27, 0, 0, 0, 0, 27, 0, 0, 27, 0, 25, 25, 27, 25, 25, 0, 25, 0, 0, 0, 0, 27, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 27, 0, 0, 27, 0, 0, 0, 0, 27, 0, 0, 27, 0, 25, 25, 0, 0, 27, 0, 27, 0, 0, 0, 0, 25, 25, 0, 0, 0, 27, 0, 1, 1, 38, 27, 1, 1, 27, 0, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 0, 0, 0, 0, 0, 25, 25, 0, 0, 0, 27, 0, 1, 1, 38, 27, 1, 1, 27, 0, 23, 0, 0, 27, 0, 0, 27, 0, 0, 25, 25, 0, 0, 0, 27, 0, 0, 27, 0, 27, 0, 0, 0, 0, 25, 25, 0, 0, 0, 27, 0, 1, 1, 38, 27, 1, 1, 27, 0, 23, 0, 0, 0, 27, 0, 0, 27, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 27, 0, 25, 25, 0, 25, 0, 0, 0, 27, 0, 0, 0, 0, 0, 27, 0, 0, 27, 0, 11, 11, 11, 25, 25, 0, 0, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 0, 0, 0, 0, 0, 0, 0, 0, 25, 25, 0, 0, 0, 27, 0, 0, 1, 27, 0, 21, 21, 0, 21, 27, 0, 0, 0, 0, 0, 25, 25, 0, 0, 0, 27, 0, 0, 0, 27, 0, 0, 27, 0, 44, 44, 44, 27, 0, 0, 0, 0, 25, 25, 0, 0, 0, 27, 0, 1, 1, 1, 27, 1, 1, 27, 0, 0, 11, 11, 11, 27, 0, 0, 0, 0, 0, 25, 25, 0, 0, 0, 27, 0, 1, 1, 1, 27, 1, 1, 27, 0, 0, 11, 11, 11, 27, 0, 0, 25, 25, 0, 0, 0, 27, 0, 0, 0, 27, 0, 0, 27, 0, 44, 44, 44, 27, 0, 0, 0, 0, 25, 25, 0, 0, 0, 27, 0, 1, 1, 1, 27, 1, 1, 27, 0, 0, 11, 11, 11, 27, 0, 0, 0, 0, 25, 25, 0, 0, 0, 27, 0, 0, 1, 1, 27, 0, 0, 0, 0, 0, 19, 19, 19, 0, 27, 27, 0, 0, 0, 0, 25, 25, 0, 0, 0, 27, 0, 0, 1, 1, 27, 0, 0, 0, 0, 0, 19, 19, 19, 0, 27, 0, 0, 0, 0, 25, 25, 0, 0, 0, 27, 0, 0, 23, 27, 0, 0, 27, 0, 1, 1, 1, 0, 0, 27, 0, 0, 0, 0, 0, 0, 0, 25, 25, 0, 0, 0, 27, 0, 1, 1, 47, 27, 1, 1, 27, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 0, 0, 25, 25, 0, 0, 0, 27, 0, 0, 13, 27, 0, 0, 27, 0, 1, 1, 1, 0, 0, 27, 0, 0, 27, 0, 0, 0, 0, 25, 25, 0, 0, 0, 27, 0, 1, 1, 29, 27, 1, 1, 27, 0, 13, 27, 0, 0, 0, 0, 25, 25, 0, 0, 0, 27, 0, 0, 1, 1, 27, 0, 0, 0, 0, 0, 19, 19, 19, 0, 27, 27, 0, 0, 0, 0, 0, 0, 0, 25, 25, 0, 0, 0, 27, 0, 0, 1, 27, 0, 21, 21, 0, 21, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 0, 0, 0, 0, 0, 0, 0, 0, 25, 25, 0, 0, 0, 27, 0, 0, 1, 27, 0, 21, 21, 0, 21, 27, 0, 0, 0, 0, 0, 25, 25, 0, 0, 0, 27, 0, 0, 27, 0, 0, 27, 0, 27, 0, 0, 0, 0, 25, 25, 0, 0, 0, 27, 0, 1, 1, 27, 1, 1, 27, 0, 27, 0, 0, 0, 0, 0, 25, 25, 0, 0, 0, 27, 0, 1, 1, 27, 1, 1, 27, 0, 27, 0, 0, 25, 25, 0, 0, 0, 27, 0, 0, 27, 0, 27, 0, 0, 0, 0, 25, 25, 0, 0, 0, 27, 0, 1, 1, 27, 1, 1, 27, 0, 27, 0, 0, 0, 0, 25, 25, 0, 0, 0, 27, 0, 0, 1, 1, 27, 0, 0, 0, 0, 0, 19, 19, 19, 0, 27, 27, 0, 0, 0, 0, 25, 25, 0, 0, 0, 27, 0, 1, 1, 1, 27, 1, 1, 27, 0, 0, 17, 17, 17, 27, 0, 0, 0, 0, 25, 25, 0, 0, 0, 27, 0, 0, 1, 1, 27, 0, 0, 0, 0, 0, 19, 19, 19, 0, 27, 27, 0, 0, 25, 25, 0, 0, 0, 27, 0, 0, 0, 27, 0, 0, 27, 0, 50, 50, 50, 27, 0, 0, 0, 0, 25, 25, 0, 0, 0, 27, 0, 1, 1, 1, 27, 1, 1, 27, 0, 0, 15, 15, 15, 27, 0, 0, 0, 0, 25, 25, 0, 0, 0, 27, 0, 0, 1, 1, 27, 0, 0, 0, 0, 0, 19, 19, 19, 0, 27, 27, 0, 0, 0, 0, 25, 25, 0, 0, 0, 27, 0, 0, 27, 0, 27, 0, 0, 0, 0, 0, 0, 0, 25, 25, 0, 0, 0, 27, 0, 0, 1, 27, 0, 21, 21, 0, 21, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 0, 0, 0, 0, 0, 0, 0, 0, 25, 25, 0, 0, 0, 27, 0, 0, 1, 27, 0, 21, 21, 0, 21, 27, 0, 0, 0, 0, 0, 25, 25, 0, 0, 0, 27, 0, 0, 27, 0, 27, 0, 0, 0, 0, 25, 25, 0, 0, 0, 27, 0, 1, 1, 27, 1, 1, 27, 0, 27, 0, 0, 0, 0, 0, 25, 25, 0, 0, 0, 27, 0, 1, 1, 27, 1, 1, 27, 0, 27, 0, 0, 25, 25, 0, 0, 0, 27, 0, 0, 27, 0, 0, 27, 0, 27, 0, 0, 0, 0, 25, 25, 0, 0, 0, 27, 0, 1, 1, 27, 1, 1, 27, 0, 27, 0, 0, 0, 0, 25, 25, 0, 0, 0, 27, 0, 0, 1, 1, 27, 0, 0, 0, 0, 0, 19, 19, 19, 0, 27, 27, 0, 0, 0, 0, 25, 25, 0, 0, 0, 27, 0, 1, 1, 1, 27, 1, 1, 27, 0, 27, 0, 0, 0, 0, 0, 25, 25, 0, 0, 0, 27, 0, 1, 1, 1, 27, 1, 1, 27, 0, 27, 0, 0, 25, 25, 0, 0, 0, 27, 0, 0, 0, 27, 0, 0, 27, 0, 41, 41, 41, 27, 0, 0, 0, 0, 25, 25, 0, 0, 0, 27, 0, 1, 1, 1, 27, 1, 1, 27, 0, 27, 0, 0, 0, 0, 25, 25, 0, 0, 0, 27, 0, 0, 1, 1, 27, 0, 0, 0, 0, 0, 19, 19, 19, 0, 27, 27, 0, 0, 0, 0, 25, 25, 0, 0, 0, 27, 0, 0, 0, 27, 0, 0, 27, 0, 1, 27, 0, 0, 0, 0, 0, 0, 0, 25, 25, 0, 0, 0, 27, 0, 0, 1, 27, 0, 21, 21, 0, 21, 27, 0, 0, 0, 0, 0, 25, 25, 0, 0, 0, 27, 0, 0, 0, 27, 0, 0, 27, 0, 1, 1, 1, 0, 0, 0, 27, 13, 0, 0, 0, 27, 0, 0, 27, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 27, 0, 25, 25, 0, 25, 0, 0, 0, 27, 0, 0, 0, 0, 27, 0, 25, 25, 0, 0, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 0, 0, 0, 0, 0, 0, 0, 0, 25, 25, 0, 0, 0, 27, 0, 0, 1, 27, 0, 21, 21, 0, 21, 27, 0, 0, 0, 0, 0, 25, 25, 0, 0, 0, 27, 0, 0, 0, 27, 0, 0, 27, 0, 56, 56, 56, 27, 0, 0, 0, 0, 25, 25, 0, 0, 0, 27, 0, 1, 1, 27, 1, 27, 0, 0, 0, 0, 0, 25, 25, 0, 0, 0, 27, 0, 1, 1, 27, 1, 27, 0, 0, 25, 25, 0, 0, 0, 27, 0, 0, 0, 27, 0, 0, 27, 0, 56, 56, 56, 27, 0, 0, 0, 0, 25, 25, 0, 0, 0, 27, 0, 1, 1, 27, 1, 27, 0, 0, 0, 0, 25, 25, 0, 0, 0, 27, 0, 0, 1, 1, 27, 0, 0, 0, 0, 0, 19, 19, 19, 0, 27, 27, 0, 0, 25, 25, 0, 0, 0, 27, 0, 0, 0, 27, 0, 0, 27, 0, 1, 1, 1, 0, 0, 0, 27, 23, 27, 0, 0, 0, 0, 0, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]; tsip_machine_parser_header_WWW_Authenticate_start = 1; tsip_machine_parser_header_WWW_Authenticate_first_final = 1738; tsip_machine_parser_header_WWW_Authenticate_error = 0; tsip_machine_parser_header_WWW_Authenticate_en_main = 1; function tsip_header_WWW_Authenticate() { tsip_header.call(this, tsip_header_type_e.WWW_Authenticate); this.s_scheme = null; this.s_realm = null; this.s_domain = null; this.s_nonce = null; this.s_opaque = null; this.b_stale = false; this.s_algorithm = null; this.s_qop = null } tsip_header_WWW_Authenticate.prototype.toString = function() { return tsk_string_format('{0} realm="{1}"{2}{3}{4}{5}{6}{7}{8}{9}{10}{11}{12}{13},stale={14}{15}{16}', this.s_scheme, this.s_realm ? this.s_realm : "", this.s_domain ? ',domain="' : "", this.s_domain ? this.s_domain : "", this.s_domain ? '"' : "", this.s_qop ? ',qop="' : "", this.s_qop ? this.s_qop : "", this.s_qop ? '"' : "", this.s_nonce ? ',nonce="' : "", this.s_nonce ? this.s_nonce : "", this.s_nonce ? '"' : "", this.s_opaque ? ',opaque="' : "", this.s_opaque ? this.s_opaque : "", this.s_opaque ? '"' : "", this.b_stale ? "TRUE" : "FALSE", this.s_algorithm ? ",algorithm=" : "", this.s_algorithm ? this.s_algorithm : "") }; tsip_header_WWW_Authenticate.prototype.Parse = function(n) { var f = 0; var l = 0; var w = n.length; var j = w; var x = tsk_buff_str2ib(n); var v; var h = new tsip_header_WWW_Authenticate(); f = tsip_machine_parser_header_WWW_Authenticate_start; var g, o, b, e, d, s, m; var q, k, a, r, u; var t; g = o = b = s = m = null; q = 0; k = 10; a = 15; r = 20; u = 30; t = 40; while (true) { _trigger_goto = false; if (q <= 0) { if (l == w) { q = u; continue } if (f == 0) { q = t; continue } } if (q <= k) { b = _tsip_machine_parser_header_WWW_Authenticate_key_offsets[f]; o = _tsip_machine_parser_header_WWW_Authenticate_index_offsets[f]; g = _tsip_machine_parser_header_WWW_Authenticate_single_lengths[f]; _break_match = false; do { if (g > 0) { _lower = b; _upper = b + g - 1; while (true) { if (_upper < _lower) { break } _mid = _lower + ((_upper - _lower) >> 1); if (x[l] < _tsip_machine_parser_header_WWW_Authenticate_trans_keys[_mid]) { _upper = _mid - 1 } else { if (x[l] > _tsip_machine_parser_header_WWW_Authenticate_trans_keys[_mid]) { _lower = _mid + 1 } else { o += (_mid - b); _break_match = true; break } } } if (_break_match) { break } b += g; o += g } g = _tsip_machine_parser_header_WWW_Authenticate_range_lengths[f]; if (g > 0) { _lower = b; _upper = b + (g << 1) - 2; while (true) { if (_upper < _lower) { break } _mid = _lower + (((_upper - _lower) >> 1) & ~1); if (x[l] < _tsip_machine_parser_header_WWW_Authenticate_trans_keys[_mid]) { _upper = _mid - 2 } else { if (x[l] > _tsip_machine_parser_header_WWW_Authenticate_trans_keys[_mid + 1]) { _lower = _mid + 2 } else { o += ((_mid - b) >> 1); _break_match = true; break } } } if (_break_match) { break } o += g } } while (false); o = _tsip_machine_parser_header_WWW_Authenticate_indicies[o]; f = _tsip_machine_parser_header_WWW_Authenticate_trans_targs[o]; if (_tsip_machine_parser_header_WWW_Authenticate_trans_actions[o] != 0) { s = _tsip_machine_parser_header_WWW_Authenticate_trans_actions[o]; m = _tsip_machine_parser_header_WWW_Authenticate_actions[s]; s += 1; while (m > 0) { m -= 1; s += 1; switch (_tsip_machine_parser_header_WWW_Authenticate_actions[s - 1]) { case 0: v = l; break; case 1: h.s_scheme = "Digest"; break; case 2: h.s_scheme = "Basic"; break; case 3: tsip_header.call(h, tsip_header_type_e.WWW_Authenticate); break; case 4: tsip_header.call(h, tsip_header_type_e.Proxy_Authenticate); break; case 5: h.s_realm = tsk_string_unquote_2(tsk_ragel_parser_get_string(n, l, v)); break; case 6: h.s_domain = tsk_ragel_parser_get_string(n, l, v); break; case 7: h.s_nonce = tsk_string_unquote_2(tsk_ragel_parser_get_string(n, l, v)); break; case 8: h.s_opaque = tsk_string_unquote_2(tsk_ragel_parser_get_string(n, l, v)); break; case 9: var c = tsk_ragel_parser_get_string(n, l, v); h.b_stale = tsk_string_iequals(c, "true"); break; case 10: h.s_algorithm = tsk_ragel_parser_get_string(n, l, v); break; case 11: h.s_qop = tsk_ragel_parser_get_string(n, l, v); break; case 12: tsk_ragel_add_param(n, l, v, h.ao_params); break; case 13: break } } } if (_trigger_goto) { continue } } if (q <= r) { if (f == 0) { q = t; continue } l += 1; if (l != w) { q = k; continue } } if (q <= u) {} if (q <= t) { break } } if (f < 1738) { tsk_utils_log_error("Failed to parse 'WWW-Authenticate' header: " + n); return null } return h }; function prev_not_comma(a, b) { return (a.i_pe <= b) || (a.o_data[b - 1] != ",") } _tsip_machine_parser_headers_actions = [0, 1, 0, 1, 1, 1, 2, 1, 3, 1, 4, 1, 5, 1, 6, 1, 7, 1, 8, 1, 9, 1, 10, 1, 11, 1, 12, 1, 13, 1, 14, 1, 15, 1, 16, 1, 17, 1, 18, 1, 19, 1, 20, 1, 21, 1, 22, 1, 23, 1, 24, 1, 25, 1, 26, 1, 27, 1, 28, 1, 29, 1, 30, 1, 31, 1, 32, 1, 33, 1, 34, 1, 35, 1, 36, 1, 37, 1, 38, 1, 39, 1, 40, 1, 41, 1, 42, 1, 43, 1, 44, 1, 45, 1, 46, 1, 47, 1, 48, 1, 49, 1, 50, 1, 51, 1, 52, 1, 53, 1, 54, 1, 55, 1, 56, 1, 57, 1, 58, 1, 59, 1, 60, 1, 61, 1, 62, 1, 63, 1, 64, 1, 65, 1, 66, 1, 67, 1, 68, 1, 69, 1, 70, 1, 71, 1, 72, 1, 73, 1, 74, 1, 75, 1, 76, 1, 77, 1, 78, 1, 79, 1, 80, 1, 81, 1, 82, 1, 83, 1, 84, 1, 85, 1, 86, 1, 87, 1, 88, 1, 89, 1, 90, 1, 91, 1, 92]; _tsip_machine_parser_headers_key_offsets = [0, 0, 54, 71, 74, 79, 82, 83, 84, 86, 109, 128, 147, 166, 185, 202, 205, 210, 213, 214, 215, 217, 242, 261, 280, 299, 318, 337, 356, 373, 376, 381, 384, 385, 386, 388, 407, 426, 445, 464, 483, 502, 521, 538, 541, 546, 549, 550, 551, 553, 572, 591, 610, 629, 648, 667, 686, 703, 706, 711, 714, 715, 716, 718, 737, 756, 775, 794, 813, 832, 851, 868, 887, 906, 925, 944, 963, 982, 1001, 1020, 1037, 1040, 1045, 1048, 1049, 1050, 1052, 1073, 1092, 1111, 1128, 1147, 1166, 1185, 1204, 1221, 1224, 1229, 1232, 1233, 1234, 1236, 1255, 1274, 1291, 1294, 1299, 1302, 1303, 1304, 1306, 1325, 1344, 1363, 1382, 1401, 1420, 1437, 1440, 1445, 1448, 1449, 1450, 1452, 1471, 1490, 1511, 1530, 1549, 1568, 1587, 1606, 1625, 1644, 1663, 1682, 1699, 1718, 1737, 1756, 1775, 1792, 1795, 1800, 1803, 1804, 1805, 1807, 1826, 1845, 1864, 1883, 1902, 1921, 1940, 1959, 1976, 1979, 1984, 1987, 1988, 1989, 1991, 2014, 2033, 2052, 2069, 2088, 2109, 2126, 2129, 2134, 2137, 2138, 2139, 2141, 2160, 2179, 2196, 2199, 2204, 2207, 2208, 2209, 2211, 2230, 2249, 2270, 2289, 2308, 2325, 2328, 2333, 2336, 2337, 2338, 2340, 2359, 2378, 2395, 2420, 2439, 2458, 2477, 2496, 2515, 2534, 2553, 2572, 2591, 2610, 2627, 2630, 2635, 2638, 2639, 2640, 2642, 2661, 2680, 2699, 2718, 2737, 2756, 2775, 2792, 2795, 2800, 2803, 2804, 2805, 2807, 2828, 2847, 2866, 2885, 2904, 2923, 2942, 2959, 2962, 2967, 2970, 2971, 2972, 2974, 2993, 3012, 3031, 3050, 3067, 3070, 3075, 3078, 3079, 3080, 3082, 3101, 3120, 3139, 3156, 3159, 3164, 3167, 3168, 3169, 3171, 3190, 3209, 3226, 3229, 3234, 3237, 3238, 3239, 3241, 3260, 3279, 3298, 3315, 3318, 3323, 3326, 3327, 3328, 3330, 3353, 3372, 3391, 3410, 3427, 3446, 3465, 3484, 3503, 3520, 3523, 3528, 3531, 3532, 3533, 3535, 3554, 3573, 3592, 3609, 3612, 3617, 3620, 3621, 3622, 3624, 3643, 3662, 3681, 3700, 3719, 3736, 3739, 3744, 3747, 3748, 3749, 3751, 3770, 3789, 3808, 3825, 3828, 3833, 3836, 3837, 3838, 3840, 3859, 3878, 3897, 3916, 3935, 3954, 3971, 3990, 4009, 4028, 4047, 4064, 4067, 4072, 4075, 4076, 4077, 4079, 4100, 4119, 4138, 4157, 4176, 4195, 4214, 4231, 4234, 4239, 4242, 4243, 4244, 4246, 4265, 4284, 4303, 4322, 4339, 4342, 4347, 4350, 4351, 4352, 4354, 4372, 4391, 4410, 4429, 4448, 4467, 4484, 4503, 4522, 4539, 4542, 4547, 4550, 4551, 4552, 4554, 4573, 4592, 4611, 4628, 4631, 4636, 4639, 4640, 4641, 4643, 4664, 4683, 4700, 4719, 4738, 4757, 4776, 4795, 4814, 4833, 4852, 4869, 4872, 4877, 4880, 4881, 4882, 4884, 4905, 4924, 4941, 4960, 4979, 4998, 5017, 5036, 5055, 5074, 5091, 5094, 5099, 5102, 5103, 5104, 5106, 5123, 5144, 5163, 5182, 5201, 5220, 5239, 5258, 5275, 5278, 5283, 5286, 5287, 5288, 5290, 5309, 5326, 5329, 5334, 5337, 5338, 5339, 5341, 5360, 5379, 5398, 5417, 5436, 5455, 5474, 5493, 5512, 5531, 5550, 5567, 5570, 5575, 5578, 5579, 5580, 5582, 5603, 5636, 5659, 5678, 5697, 5716, 5735, 5752, 5771, 5790, 5809, 5828, 5847, 5866, 5885, 5902, 5921, 5940, 5959, 5978, 5995, 5998, 6003, 6006, 6007, 6008, 6010, 6029, 6048, 6067, 6086, 6103, 6122, 6141, 6160, 6179, 6198, 6215, 6218, 6223, 6226, 6227, 6228, 6230, 6249, 6270, 6289, 6308, 6327, 6346, 6363, 6382, 6401, 6420, 6439, 6458, 6477, 6496, 6515, 6532, 6535, 6540, 6543, 6544, 6545, 6547, 6566, 6585, 6604, 6623, 6642, 6661, 6678, 6697, 6716, 6735, 6752, 6755, 6760, 6763, 6764, 6765, 6767, 6788, 6807, 6826, 6845, 6864, 6881, 6900, 6919, 6938, 6957, 6976, 6993, 7012, 7031, 7048, 7051, 7056, 7059, 7060, 7061, 7063, 7082, 7101, 7120, 7139, 7158, 7177, 7194, 7215, 7234, 7253, 7272, 7291, 7310, 7329, 7348, 7365, 7384, 7403, 7422, 7441, 7460, 7479, 7498, 7517, 7536, 7553, 7556, 7561, 7564, 7565, 7566, 7568, 7587, 7606, 7625, 7644, 7663, 7680, 7683, 7688, 7691, 7692, 7693, 7695, 7714, 7733, 7750, 7777, 7796, 7815, 7834, 7853, 7872, 7891, 7908, 7927, 7946, 7965, 7984, 8001, 8004, 8009, 8012, 8013, 8014, 8016, 8035, 8054, 8073, 8090, 8093, 8098, 8101, 8102, 8103, 8105, 8124, 8143, 8162, 8179, 8182, 8187, 8190, 8191, 8192, 8194, 8213, 8232, 8251, 8270, 8289, 8308, 8327, 8344, 8347, 8352, 8355, 8356, 8357, 8359, 8378, 8397, 8416, 8435, 8452, 8471, 8490, 8509, 8528, 8547, 8564, 8583, 8602, 8619, 8622, 8627, 8630, 8631, 8632, 8634, 8653, 8672, 8691, 8710, 8727, 8746, 8765, 8784, 8803, 8822, 8839, 8842, 8847, 8850, 8851, 8852, 8854, 8873, 8892, 8911, 8930, 8947, 8966, 8985, 9004, 9023, 9042, 9061, 9080, 9099, 9118, 9137, 9156, 9175, 9194, 9211, 9214, 9219, 9222, 9223, 9224, 9226, 9245, 9266, 9285, 9304, 9323, 9342, 9361, 9380, 9397, 9416, 9435, 9454, 9473, 9492, 9511, 9530, 9549, 9566, 9569, 9574, 9577, 9578, 9579, 9581, 9600, 9619, 9638, 9657, 9674, 9693, 9712, 9731, 9748, 9751, 9756, 9759, 9760, 9761, 9763, 9782, 9801, 9820, 9837, 9856, 9875, 9894, 9913, 9932, 9951, 9970, 9989, 10006, 10009, 10014, 10017, 10018, 10019, 10021, 10040, 10059, 10078, 10097, 10116, 10135, 10152, 10171, 10190, 10209, 10228, 10247, 10266, 10285, 10302, 10321, 10340, 10357, 10360, 10365, 10368, 10369, 10370, 10372, 10391, 10410, 10427, 10430, 10435, 10438, 10439, 10440, 10442, 10463, 10484, 10503, 10522, 10541, 10560, 10577, 10580, 10585, 10588, 10589, 10590, 10592, 10611, 10630, 10649, 10666, 10669, 10674, 10677, 10678, 10679, 10681, 10700, 10719, 10736, 10757, 10776, 10795, 10814, 10835, 10854, 10873, 10892, 10911, 10930, 10949, 10968, 10985, 10988, 10993, 10996, 11000, 11001, 11003, 11022, 11041, 11060, 11079, 11098, 11117, 11136, 11155, 11172, 11175, 11180, 11183, 11184, 11185, 11187, 11206, 11225, 11244, 11263, 11282, 11301, 11318, 11321, 11326, 11329, 11330, 11331, 11333, 11358, 11377, 11396, 11413, 11416, 11421, 11424, 11425, 11426, 11428, 11461, 11480, 11499, 11518, 11535, 11538, 11543, 11546, 11547, 11548, 11550, 11569, 11588, 11607, 11624, 11643, 11662, 11681, 11700, 11719, 11736, 11739, 11744, 11747, 11748, 11749, 11751, 11770, 11789, 11808, 11829, 11848, 11867, 11884, 11887, 11892, 11895, 11896, 11897, 11899, 11918, 11935, 11938, 11943, 11946, 11947, 11948, 11950, 11969, 11988, 12005, 12024, 12043, 12060, 12063, 12068, 12071, 12072, 12073, 12075, 12094, 12113, 12132, 12149, 12168, 12187, 12206, 12225, 12244, 12263, 12282, 12299, 12302, 12307, 12310, 12311, 12312, 12314, 12333, 12354, 12373, 12392, 12411, 12428, 12431, 12436, 12439, 12440, 12441, 12443, 12460, 12479, 12498, 12515, 12518, 12523, 12526, 12527, 12528, 12530, 12549, 12570, 12589, 12608, 12625, 12644, 12663, 12682, 12701, 12720, 12739, 12758, 12777, 12796, 12815, 12834, 12851, 12854, 12859, 12862, 12863, 12864, 12866, 12885, 12904, 12921, 12924, 12929, 12932, 12933, 12934, 12936, 12955, 12974, 12993, 13012, 13031, 13048, 13067, 13086, 13105, 13124, 13143, 13162, 13181, 13200, 13217, 13220, 13225, 13228, 13229, 13230, 13232, 13251, 13270, 13287, 13306, 13325, 13344, 13363, 13382, 13399, 13402, 13407, 13410, 13411, 13412, 13414, 13433, 13452, 13471, 13488, 13491, 13496, 13499, 13500, 13501, 13503, 13522, 13541, 13558, 13561, 13566, 13569, 13570, 13571, 13573, 13596, 13599, 13604, 13607, 13608, 13609, 13611, 13634, 13653, 13672, 13691, 13710, 13729, 13746, 13769, 13788, 13807, 13826, 13845, 13864, 13881, 13884, 13889, 13892, 13893, 13894, 13896, 13915, 13934, 13953, 13972, 13991, 14008, 14011, 14016, 14019, 14020, 14021, 14023, 14042, 14061, 14080, 14099, 14118, 14135, 14138, 14143, 14146, 14147, 14148, 14150, 14169, 14190, 14209, 14226, 14229, 14234, 14237, 14238, 14239, 14241, 14260, 14279, 14296, 14315, 14334, 14353, 14372, 14391, 14408, 14411, 14416, 14419, 14420, 14421, 14423, 14442, 14461, 14480, 14499, 14516, 14535, 14554, 14573, 14592, 14611, 14630, 14649, 14666, 14669, 14674, 14677, 14678, 14679, 14681, 14700, 14717, 14738, 14757, 14776, 14795, 14812, 14815, 14820, 14823, 14824, 14825, 14827, 14846, 14863, 14882, 14901, 14920, 14939, 14958, 14975, 14978, 14983, 14986, 14987, 14988, 14990, 15011, 15032, 15051, 15070, 15089, 15106, 15125, 15144, 15163, 15182, 15201, 15220, 15239, 15258, 15275, 15294, 15313, 15332, 15351, 15370, 15387, 15390, 15395, 15398, 15399, 15400, 15402, 15421, 15440, 15459, 15478, 15497, 15516, 15533, 15536, 15541, 15544, 15545, 15546, 15548, 15571, 15590, 15609, 15628, 15647, 15664, 15683, 15702, 15721, 15740, 15759, 15778, 15795, 15798, 15803, 15806, 15807, 15808, 15810, 15829, 15848, 15867, 15886, 15905, 15924, 15943, 15960, 15963, 15968, 15971, 15972, 15973, 15975, 15992, 15995, 16000, 16003, 16004, 16005, 16007, 16028, 16047, 16066, 16085, 16104, 16123, 16142, 16161, 16180, 16199, 16216, 16219, 16224, 16227, 16228, 16229, 16231, 16250, 16269, 16286, 16305, 16324, 16343, 16362, 16381, 16398, 16401, 16406, 16409, 16410, 16411, 16413, 16432, 16451, 16468, 16471, 16476, 16479, 16480, 16481, 16483, 16504, 16523, 16542, 16561, 16580, 16599, 16616, 16619, 16624, 16627, 16628, 16629, 16631, 16650, 16667, 16686, 16705, 16724, 16743, 16762, 16781, 16800, 16819, 16838, 16857, 16876, 16895, 16912, 16915, 16920, 16923, 16927, 16928, 16930, 16953, 16976, 16995, 17018, 17037, 17058, 17077, 17098, 17123, 17146, 17167, 17186, 17203, 17203, 17206]; _tsip_machine_parser_headers_trans_keys = [33, 37, 39, 65, 67, 68, 69, 70, 72, 73, 74, 77, 79, 80, 82, 83, 84, 85, 86, 87, 97, 98, 99, 100, 101, 102, 104, 105, 106, 107, 108, 109, 110, 111, 112, 114, 115, 116, 117, 118, 119, 120, 121, 126, 42, 43, 45, 46, 48, 57, 66, 90, 95, 122, 9, 32, 33, 37, 39, 58, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 58, 9, 13, 32, 0, 65535, 13, 0, 65535, 10, 10, 9, 32, 9, 32, 33, 37, 39, 58, 67, 76, 85, 99, 108, 117, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 67, 99, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 69, 101, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 80, 112, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 84, 116, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 45, 46, 58, 126, 42, 43, 48, 57, 65, 90, 95, 122, 9, 32, 58, 9, 13, 32, 0, 65535, 13, 0, 65535, 10, 10, 9, 32, 9, 32, 33, 37, 39, 58, 67, 69, 76, 82, 99, 101, 108, 114, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 79, 111, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 78, 110, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 84, 116, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 65, 97, 126, 42, 43, 45, 46, 48, 57, 66, 90, 95, 122, 9, 32, 33, 37, 39, 58, 67, 99, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 84, 116, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 58, 9, 13, 32, 0, 65535, 13, 0, 65535, 10, 10, 9, 32, 9, 32, 33, 37, 39, 58, 78, 110, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 67, 99, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 79, 111, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 68, 100, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 73, 105, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 78, 110, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 71, 103, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 58, 9, 13, 32, 0, 65535, 13, 0, 65535, 10, 10, 9, 32, 9, 32, 33, 37, 39, 58, 65, 97, 126, 42, 43, 45, 46, 48, 57, 66, 90, 95, 122, 9, 32, 33, 37, 39, 58, 78, 110, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 71, 103, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 85, 117, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 65, 97, 126, 42, 43, 45, 46, 48, 57, 66, 90, 95, 122, 9, 32, 33, 37, 39, 58, 71, 103, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 69, 101, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 58, 9, 13, 32, 0, 65535, 13, 0, 65535, 10, 10, 9, 32, 9, 32, 33, 37, 39, 58, 69, 101, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 83, 115, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 79, 111, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 85, 117, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 82, 114, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 67, 99, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 69, 101, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 45, 46, 58, 126, 42, 43, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 80, 112, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 82, 114, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 73, 105, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 79, 111, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 82, 114, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 73, 105, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 84, 116, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 89, 121, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 58, 9, 13, 32, 0, 65535, 13, 0, 65535, 10, 10, 9, 32, 9, 32, 33, 37, 39, 58, 69, 76, 101, 108, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 82, 114, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 84, 116, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 45, 46, 58, 126, 42, 43, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 73, 105, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 78, 110, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 70, 102, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 79, 111, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 58, 9, 13, 32, 0, 65535, 13, 0, 65535, 10, 10, 9, 32, 9, 32, 33, 37, 39, 58, 79, 111, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 87, 119, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 45, 46, 58, 126, 42, 43, 48, 57, 65, 90, 95, 122, 9, 32, 58, 9, 13, 32, 0, 65535, 13, 0, 65535, 10, 10, 9, 32, 9, 32, 33, 37, 39, 58, 69, 101, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 86, 118, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 69, 101, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 78, 110, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 84, 116, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 83, 115, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 58, 9, 13, 32, 0, 65535, 13, 0, 65535, 10, 10, 9, 32, 9, 32, 33, 37, 39, 58, 84, 116, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 72, 104, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 69, 79, 101, 111, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 78, 110, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 84, 116, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 73, 105, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 67, 99, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 65, 97, 126, 42, 43, 45, 46, 48, 57, 66, 90, 95, 122, 9, 32, 33, 37, 39, 58, 84, 116, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 73, 105, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 79, 111, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 78, 110, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 45, 46, 58, 126, 42, 43, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 73, 105, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 78, 110, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 70, 102, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 79, 111, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 58, 9, 13, 32, 0, 65535, 13, 0, 65535, 10, 10, 9, 32, 9, 32, 33, 37, 39, 58, 82, 114, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 73, 105, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 90, 122, 126, 42, 43, 45, 46, 48, 57, 65, 89, 95, 121, 9, 32, 33, 37, 39, 58, 65, 97, 126, 42, 43, 45, 46, 48, 57, 66, 90, 95, 122, 9, 32, 33, 37, 39, 58, 84, 116, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 73, 105, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 79, 111, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 78, 110, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 58, 9, 13, 32, 0, 65535, 13, 0, 65535, 10, 10, 9, 32, 9, 32, 33, 37, 39, 58, 65, 79, 83, 97, 111, 115, 126, 42, 43, 45, 46, 48, 57, 66, 90, 95, 122, 9, 32, 33, 37, 39, 58, 76, 108, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 76, 108, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 45, 46, 58, 126, 42, 43, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 73, 105, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 68, 78, 100, 110, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 58, 9, 13, 32, 0, 65535, 13, 0, 65535, 10, 10, 9, 32, 9, 32, 33, 37, 39, 58, 70, 102, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 79, 111, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 58, 9, 13, 32, 0, 65535, 13, 0, 65535, 10, 10, 9, 32, 9, 32, 33, 37, 39, 58, 78, 110, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 84, 116, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 65, 69, 97, 101, 126, 42, 43, 45, 46, 48, 57, 66, 90, 95, 122, 9, 32, 33, 37, 39, 58, 67, 99, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 84, 116, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 58, 9, 13, 32, 0, 65535, 13, 0, 65535, 10, 10, 9, 32, 9, 32, 33, 37, 39, 58, 78, 110, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 84, 116, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 45, 46, 58, 126, 42, 43, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 68, 69, 76, 84, 100, 101, 108, 116, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 73, 105, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 83, 115, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 80, 112, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 79, 111, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 83, 115, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 73, 105, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 84, 116, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 73, 105, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 79, 111, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 78, 110, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 58, 9, 13, 32, 0, 65535, 13, 0, 65535, 10, 10, 9, 32, 9, 32, 33, 37, 39, 58, 78, 110, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 67, 99, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 79, 111, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 68, 100, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 73, 105, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 78, 110, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 71, 103, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 58, 9, 13, 32, 0, 65535, 13, 0, 65535, 10, 10, 9, 32, 9, 32, 33, 37, 39, 58, 65, 69, 97, 101, 126, 42, 43, 45, 46, 48, 57, 66, 90, 95, 122, 9, 32, 33, 37, 39, 58, 78, 110, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 71, 103, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 85, 117, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 65, 97, 126, 42, 43, 45, 46, 48, 57, 66, 90, 95, 122, 9, 32, 33, 37, 39, 58, 71, 103, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 69, 101, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 58, 9, 13, 32, 0, 65535, 13, 0, 65535, 10, 10, 9, 32, 9, 32, 33, 37, 39, 58, 78, 110, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 71, 103, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 84, 116, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 72, 104, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 58, 9, 13, 32, 0, 65535, 13, 0, 65535, 10, 10, 9, 32, 9, 32, 33, 37, 39, 58, 89, 121, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 80, 112, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 69, 101, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 58, 9, 13, 32, 0, 65535, 13, 0, 65535, 10, 10, 9, 32, 9, 32, 33, 37, 39, 58, 69, 101, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 81, 113, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 58, 9, 13, 32, 0, 65535, 13, 0, 65535, 10, 10, 9, 32, 9, 32, 33, 37, 39, 58, 65, 97, 126, 42, 43, 45, 46, 48, 57, 66, 90, 95, 122, 9, 32, 33, 37, 39, 58, 84, 116, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 69, 101, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 58, 9, 13, 32, 0, 65535, 13, 0, 65535, 10, 10, 9, 32, 9, 32, 33, 37, 39, 58, 82, 86, 88, 114, 118, 120, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 82, 114, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 79, 111, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 82, 114, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 45, 46, 58, 126, 42, 43, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 73, 105, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 78, 110, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 70, 102, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 79, 111, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 58, 9, 13, 32, 0, 65535, 13, 0, 65535, 10, 10, 9, 32, 9, 32, 33, 37, 39, 58, 69, 101, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 78, 110, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 84, 116, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 58, 9, 13, 32, 0, 65535, 13, 0, 65535, 10, 10, 9, 32, 9, 32, 33, 37, 39, 58, 80, 112, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 73, 105, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 82, 114, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 69, 101, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 83, 115, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 58, 9, 13, 32, 0, 65535, 13, 0, 65535, 10, 10, 9, 32, 9, 32, 33, 37, 39, 58, 82, 114, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 79, 111, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 77, 109, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 58, 9, 13, 32, 0, 65535, 13, 0, 65535, 10, 10, 9, 32, 9, 32, 33, 37, 39, 58, 73, 105, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 83, 115, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 84, 116, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 79, 111, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 82, 114, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 89, 121, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 45, 46, 58, 126, 42, 43, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 73, 105, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 78, 110, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 70, 102, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 79, 111, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 58, 9, 13, 32, 0, 65535, 13, 0, 65535, 10, 10, 9, 32, 9, 32, 33, 37, 39, 58, 68, 78, 100, 110, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 69, 101, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 78, 110, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 84, 116, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 73, 105, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 84, 116, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 89, 121, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 45, 46, 58, 126, 42, 43, 48, 57, 65, 90, 95, 122, 9, 32, 58, 9, 13, 32, 0, 65535, 13, 0, 65535, 10, 10, 9, 32, 9, 32, 33, 37, 39, 58, 73, 105, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 78, 110, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 70, 102, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 79, 111, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 58, 9, 13, 32, 0, 65535, 13, 0, 65535, 10, 10, 9, 32, 9, 32, 33, 37, 39, 58, 95, 126, 42, 43, 45, 46, 48, 57, 65, 90, 96, 122, 9, 32, 33, 37, 39, 58, 82, 114, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 69, 101, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 80, 112, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 76, 108, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 89, 121, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 45, 46, 58, 126, 42, 43, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 84, 116, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 79, 111, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 58, 9, 13, 32, 0, 65535, 13, 0, 65535, 10, 10, 9, 32, 9, 32, 33, 37, 39, 58, 79, 111, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 73, 105, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 78, 110, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 58, 9, 13, 32, 0, 65535, 13, 0, 65535, 10, 10, 9, 32, 9, 32, 33, 37, 39, 58, 65, 73, 97, 105, 126, 42, 43, 45, 46, 48, 57, 66, 90, 95, 122, 9, 32, 33, 37, 39, 58, 88, 120, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 45, 46, 58, 126, 42, 43, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 70, 102, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 79, 111, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 82, 114, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 87, 119, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 65, 97, 126, 42, 43, 45, 46, 48, 57, 66, 90, 95, 122, 9, 32, 33, 37, 39, 58, 82, 114, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 68, 100, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 83, 115, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 58, 9, 13, 32, 0, 65535, 13, 0, 65535, 10, 10, 9, 32, 9, 32, 33, 37, 39, 58, 77, 78, 109, 110, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 69, 101, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 45, 46, 58, 126, 42, 43, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 86, 118, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 69, 101, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 82, 114, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 83, 115, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 73, 105, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 79, 111, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 78, 110, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 58, 9, 13, 32, 0, 65535, 13, 0, 65535, 10, 10, 9, 32, 9, 32, 33, 37, 39, 45, 46, 58, 126, 42, 43, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 69, 83, 101, 115, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 88, 120, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 80, 112, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 73, 105, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 82, 114, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 69, 101, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 83, 115, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 58, 9, 13, 32, 0, 65535, 13, 0, 65535, 10, 10, 9, 32, 9, 32, 33, 37, 39, 58, 69, 101, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 58, 9, 13, 32, 0, 65535, 13, 0, 65535, 10, 10, 9, 32, 9, 32, 33, 37, 39, 58, 82, 114, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 71, 103, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 65, 97, 126, 42, 43, 45, 46, 48, 57, 66, 90, 95, 122, 9, 32, 33, 37, 39, 58, 78, 110, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 73, 105, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 90, 122, 126, 42, 43, 45, 46, 48, 57, 65, 89, 95, 121, 9, 32, 33, 37, 39, 58, 65, 97, 126, 42, 43, 45, 46, 48, 57, 66, 90, 95, 122, 9, 32, 33, 37, 39, 58, 84, 116, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 73, 105, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 79, 111, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 78, 110, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 58, 9, 13, 32, 0, 65535, 13, 0, 65535, 10, 10, 9, 32, 9, 32, 33, 37, 39, 45, 46, 58, 65, 82, 97, 114, 126, 42, 43, 48, 57, 66, 90, 95, 122, 9, 32, 33, 37, 39, 58, 65, 67, 68, 69, 77, 80, 85, 86, 97, 99, 100, 101, 109, 112, 117, 118, 126, 42, 43, 45, 46, 48, 57, 66, 90, 95, 122, 9, 32, 33, 37, 39, 58, 67, 78, 83, 99, 110, 115, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 67, 99, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 69, 101, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 83, 115, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 83, 115, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 45, 46, 58, 126, 42, 43, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 78, 110, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 69, 101, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 84, 116, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 87, 119, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 79, 111, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 82, 114, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 75, 107, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 45, 46, 58, 126, 42, 43, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 73, 105, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 78, 110, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 70, 102, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 79, 111, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 58, 9, 13, 32, 0, 65535, 13, 0, 65535, 10, 10, 9, 32, 9, 32, 33, 37, 39, 58, 83, 115, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 87, 119, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 69, 101, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 82, 114, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 45, 46, 58, 126, 42, 43, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 83, 115, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 84, 116, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 65, 97, 126, 42, 43, 45, 46, 48, 57, 66, 90, 95, 122, 9, 32, 33, 37, 39, 58, 84, 116, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 69, 101, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 58, 9, 13, 32, 0, 65535, 13, 0, 65535, 10, 10, 9, 32, 9, 32, 33, 37, 39, 58, 83, 115, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 69, 79, 101, 111, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 82, 114, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 84, 116, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 69, 101, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 68, 100, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 45, 46, 58, 126, 42, 43, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 73, 105, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 68, 100, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 69, 101, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 78, 110, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 84, 116, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 73, 105, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 84, 116, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 89, 121, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 58, 9, 13, 32, 0, 65535, 13, 0, 65535, 10, 10, 9, 32, 9, 32, 33, 37, 39, 58, 67, 99, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 73, 105, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 65, 97, 126, 42, 43, 45, 46, 48, 57, 66, 90, 95, 122, 9, 32, 33, 37, 39, 58, 84, 116, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 69, 101, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 68, 100, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 45, 46, 58, 126, 42, 43, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 85, 117, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 82, 114, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 73, 105, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 58, 9, 13, 32, 0, 65535, 13, 0, 65535, 10, 10, 9, 32, 9, 32, 33, 37, 39, 58, 65, 72, 97, 104, 126, 42, 43, 45, 46, 48, 57, 66, 90, 95, 122, 9, 32, 33, 37, 39, 58, 76, 108, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 76, 108, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 69, 101, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 68, 100, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 45, 46, 58, 126, 42, 43, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 80, 112, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 65, 97, 126, 42, 43, 45, 46, 48, 57, 66, 90, 95, 122, 9, 32, 33, 37, 39, 58, 82, 114, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 84, 116, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 89, 121, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 45, 46, 58, 126, 42, 43, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 73, 105, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 68, 100, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 58, 9, 13, 32, 0, 65535, 13, 0, 65535, 10, 10, 9, 32, 9, 32, 33, 37, 39, 58, 65, 97, 126, 42, 43, 45, 46, 48, 57, 66, 90, 95, 122, 9, 32, 33, 37, 39, 58, 82, 114, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 71, 103, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 73, 105, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 78, 110, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 71, 103, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 45, 46, 58, 126, 42, 43, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 70, 86, 102, 118, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 85, 117, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 78, 110, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 67, 99, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 84, 116, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 73, 105, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 79, 111, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 78, 110, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 45, 46, 58, 126, 42, 43, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 65, 97, 126, 42, 43, 45, 46, 48, 57, 66, 90, 95, 122, 9, 32, 33, 37, 39, 58, 68, 100, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 68, 100, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 82, 114, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 69, 101, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 83, 115, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 83, 115, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 69, 101, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 83, 115, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 58, 9, 13, 32, 0, 65535, 13, 0, 65535, 10, 10, 9, 32, 9, 32, 33, 37, 39, 58, 69, 101, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 67, 99, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 84, 116, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 79, 111, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 82, 114, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 58, 9, 13, 32, 0, 65535, 13, 0, 65535, 10, 10, 9, 32, 9, 32, 33, 37, 39, 58, 67, 99, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 83, 115, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 45, 46, 58, 126, 42, 43, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 66, 76, 79, 82, 84, 98, 108, 111, 114, 116, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 73, 105, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 76, 108, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 76, 108, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 73, 105, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 78, 110, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 71, 103, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 45, 46, 58, 126, 42, 43, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 73, 105, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 78, 110, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 70, 102, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 79, 111, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 58, 9, 13, 32, 0, 65535, 13, 0, 65535, 10, 10, 9, 32, 9, 32, 33, 37, 39, 58, 65, 97, 126, 42, 43, 45, 46, 48, 57, 66, 90, 95, 122, 9, 32, 33, 37, 39, 58, 69, 101, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 83, 115, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 58, 9, 13, 32, 0, 65535, 13, 0, 65535, 10, 10, 9, 32, 9, 32, 33, 37, 39, 58, 83, 115, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 80, 112, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 83, 115, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 58, 9, 13, 32, 0, 65535, 13, 0, 65535, 10, 10, 9, 32, 9, 32, 33, 37, 39, 58, 69, 101, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 68, 100, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 73, 105, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 82, 114, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 69, 101, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 67, 99, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 84, 116, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 58, 9, 13, 32, 0, 65535, 13, 0, 65535, 10, 10, 9, 32, 9, 32, 33, 37, 39, 58, 82, 114, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 65, 97, 126, 42, 43, 45, 46, 48, 57, 66, 90, 95, 122, 9, 32, 33, 37, 39, 58, 67, 99, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 69, 101, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 45, 46, 58, 126, 42, 43, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 80, 112, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 65, 97, 126, 42, 43, 45, 46, 48, 57, 66, 90, 95, 122, 9, 32, 33, 37, 39, 58, 82, 114, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 84, 116, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 89, 121, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 45, 46, 58, 126, 42, 43, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 73, 105, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 68, 100, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 58, 9, 13, 32, 0, 65535, 13, 0, 65535, 10, 10, 9, 32, 9, 32, 33, 37, 39, 58, 65, 97, 126, 42, 43, 45, 46, 48, 57, 66, 90, 95, 122, 9, 32, 33, 37, 39, 58, 82, 114, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 76, 108, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 89, 121, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 45, 46, 58, 126, 42, 43, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 77, 109, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 69, 101, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 68, 100, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 73, 105, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 65, 97, 126, 42, 43, 45, 46, 48, 57, 66, 90, 95, 122, 9, 32, 33, 37, 39, 58, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 58, 9, 13, 32, 0, 65535, 13, 0, 65535, 10, 10, 9, 32, 9, 32, 33, 37, 39, 58, 69, 101, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 68, 100, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 73, 105, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 65, 97, 126, 42, 43, 45, 46, 48, 57, 66, 90, 95, 122, 9, 32, 33, 37, 39, 45, 46, 58, 126, 42, 43, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 65, 97, 126, 42, 43, 45, 46, 48, 57, 66, 90, 95, 122, 9, 32, 33, 37, 39, 58, 85, 117, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 84, 116, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 72, 104, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 79, 111, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 82, 114, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 73, 105, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 90, 122, 126, 42, 43, 45, 46, 48, 57, 65, 89, 95, 121, 9, 32, 33, 37, 39, 58, 65, 97, 126, 42, 43, 45, 46, 48, 57, 66, 90, 95, 122, 9, 32, 33, 37, 39, 58, 84, 116, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 73, 105, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 79, 111, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 78, 110, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 58, 9, 13, 32, 0, 65535, 13, 0, 65535, 10, 10, 9, 32, 9, 32, 33, 37, 39, 58, 82, 114, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 69, 79, 101, 111, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 70, 102, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 69, 101, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 82, 114, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 82, 114, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 69, 101, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 68, 100, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 45, 46, 58, 126, 42, 43, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 73, 105, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 68, 100, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 69, 101, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 78, 110, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 84, 116, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 73, 105, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 84, 116, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 89, 121, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 58, 9, 13, 32, 0, 65535, 13, 0, 65535, 10, 10, 9, 32, 9, 32, 33, 37, 39, 58, 70, 102, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 73, 105, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 76, 108, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 69, 101, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 45, 46, 58, 126, 42, 43, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 75, 107, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 69, 101, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 89, 121, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 58, 9, 13, 32, 0, 65535, 13, 0, 65535, 10, 10, 9, 32, 9, 32, 33, 37, 39, 58, 83, 115, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 69, 101, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 82, 114, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 45, 46, 58, 126, 42, 43, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 68, 100, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 65, 97, 126, 42, 43, 45, 46, 48, 57, 66, 90, 95, 122, 9, 32, 33, 37, 39, 58, 84, 116, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 65, 97, 126, 42, 43, 45, 46, 48, 57, 66, 90, 95, 122, 9, 32, 33, 37, 39, 58, 66, 98, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 65, 97, 126, 42, 43, 45, 46, 48, 57, 66, 90, 95, 122, 9, 32, 33, 37, 39, 58, 83, 115, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 69, 101, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 58, 9, 13, 32, 0, 65535, 13, 0, 65535, 10, 10, 9, 32, 9, 32, 33, 37, 39, 58, 73, 105, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 83, 115, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 73, 105, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 84, 116, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 69, 101, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 68, 100, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 45, 46, 58, 126, 42, 43, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 78, 110, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 69, 101, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 84, 116, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 87, 119, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 79, 111, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 82, 114, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 75, 107, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 45, 46, 58, 126, 42, 43, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 73, 105, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 68, 100, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 58, 9, 13, 32, 0, 65535, 13, 0, 65535, 10, 10, 9, 32, 9, 32, 33, 37, 39, 58, 84, 116, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 72, 104, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 58, 9, 13, 32, 0, 65535, 13, 0, 65535, 10, 10, 9, 32, 9, 32, 33, 37, 39, 58, 73, 79, 105, 111, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 79, 86, 111, 118, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 82, 114, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 73, 105, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 84, 116, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 89, 121, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 58, 9, 13, 32, 0, 65535, 13, 0, 65535, 10, 10, 9, 32, 9, 32, 33, 37, 39, 58, 65, 97, 126, 42, 43, 45, 46, 48, 57, 66, 90, 95, 122, 9, 32, 33, 37, 39, 58, 67, 99, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 89, 121, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 58, 9, 13, 32, 0, 65535, 13, 0, 65535, 10, 10, 9, 32, 9, 32, 33, 37, 39, 58, 88, 120, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 89, 121, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 45, 46, 58, 126, 42, 43, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 65, 82, 97, 114, 126, 42, 43, 45, 46, 48, 57, 66, 90, 95, 122, 9, 32, 33, 37, 39, 58, 85, 117, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 84, 116, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 72, 104, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 69, 79, 101, 111, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 78, 110, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 84, 116, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 73, 105, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 67, 99, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 65, 97, 126, 42, 43, 45, 46, 48, 57, 66, 90, 95, 122, 9, 32, 33, 37, 39, 58, 84, 116, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 69, 101, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 58, 9, 13, 32, 0, 65535, 13, 0, 65535, 10, 13, 0, 65535, 10, 9, 32, 9, 32, 33, 37, 39, 58, 82, 114, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 73, 105, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 90, 122, 126, 42, 43, 45, 46, 48, 57, 65, 89, 95, 121, 9, 32, 33, 37, 39, 58, 65, 97, 126, 42, 43, 45, 46, 48, 57, 66, 90, 95, 122, 9, 32, 33, 37, 39, 58, 84, 116, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 73, 105, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 79, 111, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 78, 110, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 58, 9, 13, 32, 0, 65535, 13, 0, 65535, 10, 10, 9, 32, 9, 32, 33, 37, 39, 58, 69, 101, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 81, 113, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 85, 117, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 73, 105, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 82, 114, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 69, 101, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 58, 9, 13, 32, 0, 65535, 13, 0, 65535, 10, 10, 9, 32, 9, 32, 33, 37, 39, 58, 65, 69, 79, 83, 97, 101, 111, 115, 126, 42, 43, 45, 46, 48, 57, 66, 90, 95, 122, 9, 32, 33, 37, 39, 58, 67, 99, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 75, 107, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 58, 9, 13, 32, 0, 65535, 13, 0, 65535, 10, 10, 9, 32, 9, 32, 33, 37, 39, 58, 65, 67, 70, 74, 80, 81, 83, 84, 97, 99, 102, 106, 112, 113, 115, 116, 126, 42, 43, 45, 46, 48, 57, 66, 90, 95, 122, 9, 32, 33, 37, 39, 58, 83, 115, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 79, 111, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 78, 110, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 58, 9, 13, 32, 0, 65535, 13, 0, 65535, 10, 10, 9, 32, 9, 32, 33, 37, 39, 58, 79, 111, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 82, 114, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 68, 100, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 45, 46, 58, 126, 42, 43, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 82, 114, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 79, 111, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 85, 117, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 84, 116, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 69, 101, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 58, 9, 13, 32, 0, 65535, 13, 0, 65535, 10, 10, 9, 32, 9, 32, 33, 37, 39, 58, 69, 101, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 82, 114, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 45, 46, 58, 82, 114, 126, 42, 43, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 83, 84, 115, 116, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 85, 117, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 66, 98, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 58, 9, 13, 32, 0, 65535, 13, 0, 65535, 10, 10, 9, 32, 9, 32, 33, 37, 39, 58, 79, 111, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 58, 9, 13, 32, 0, 65535, 13, 0, 65535, 10, 10, 9, 32, 9, 32, 33, 37, 39, 58, 69, 101, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 68, 100, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 45, 46, 58, 126, 42, 43, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 66, 98, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 89, 121, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 58, 9, 13, 32, 0, 65535, 13, 0, 65535, 10, 10, 9, 32, 9, 32, 33, 37, 39, 58, 69, 101, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 67, 99, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 84, 116, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 45, 46, 58, 126, 42, 43, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 67, 99, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 79, 111, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 78, 110, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 84, 116, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 65, 97, 126, 42, 43, 45, 46, 48, 57, 66, 90, 95, 122, 9, 32, 33, 37, 39, 58, 67, 99, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 84, 116, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 58, 9, 13, 32, 0, 65535, 13, 0, 65535, 10, 10, 9, 32, 9, 32, 33, 37, 39, 58, 76, 108, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 65, 89, 97, 121, 126, 42, 43, 45, 46, 48, 57, 66, 90, 95, 122, 9, 32, 33, 37, 39, 58, 67, 99, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 69, 101, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 83, 115, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 58, 9, 13, 32, 0, 65535, 13, 0, 65535, 10, 10, 9, 32, 9, 32, 33, 37, 39, 45, 46, 58, 126, 42, 43, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 84, 116, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 79, 111, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 58, 9, 13, 32, 0, 65535, 13, 0, 65535, 10, 10, 9, 32, 9, 32, 33, 37, 39, 58, 85, 117, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 69, 73, 101, 105, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 83, 115, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 84, 116, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 45, 46, 58, 126, 42, 43, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 68, 100, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 73, 105, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 83, 115, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 80, 112, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 79, 111, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 83, 115, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 73, 105, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 84, 116, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 73, 105, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 79, 111, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 78, 110, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 58, 9, 13, 32, 0, 65535, 13, 0, 65535, 10, 10, 9, 32, 9, 32, 33, 37, 39, 58, 82, 114, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 69, 101, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 58, 9, 13, 32, 0, 65535, 13, 0, 65535, 10, 10, 9, 32, 9, 32, 33, 37, 39, 58, 79, 111, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 85, 117, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 82, 114, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 67, 99, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 69, 101, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 45, 46, 58, 126, 42, 43, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 80, 112, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 82, 114, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 73, 105, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 79, 111, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 82, 114, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 73, 105, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 84, 116, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 89, 121, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 58, 9, 13, 32, 0, 65535, 13, 0, 65535, 10, 10, 9, 32, 9, 32, 33, 37, 39, 58, 82, 114, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 89, 121, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 45, 46, 58, 126, 42, 43, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 65, 97, 126, 42, 43, 45, 46, 48, 57, 66, 90, 95, 122, 9, 32, 33, 37, 39, 58, 70, 102, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 84, 116, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 69, 101, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 82, 114, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 58, 9, 13, 32, 0, 65535, 13, 0, 65535, 10, 10, 9, 32, 9, 32, 33, 37, 39, 58, 85, 117, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 84, 116, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 69, 101, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 58, 9, 13, 32, 0, 65535, 13, 0, 65535, 10, 10, 9, 32, 9, 32, 33, 37, 39, 58, 69, 101, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 81, 113, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 58, 9, 13, 32, 0, 65535, 13, 0, 65535, 10, 10, 9, 32, 9, 32, 33, 37, 39, 58, 69, 73, 85, 101, 105, 117, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 58, 9, 13, 32, 0, 65535, 13, 0, 65535, 10, 10, 9, 32, 9, 32, 33, 37, 39, 58, 67, 82, 83, 99, 114, 115, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 85, 117, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 82, 114, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 73, 105, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 84, 116, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 89, 121, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 45, 46, 58, 126, 42, 43, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 67, 83, 86, 99, 115, 118, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 76, 108, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 73, 105, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 69, 101, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 78, 110, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 84, 116, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 58, 9, 13, 32, 0, 65535, 13, 0, 65535, 10, 10, 9, 32, 9, 32, 33, 37, 39, 58, 69, 101, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 82, 114, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 86, 118, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 69, 101, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 82, 114, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 58, 9, 13, 32, 0, 65535, 13, 0, 65535, 10, 10, 9, 32, 9, 32, 33, 37, 39, 58, 69, 101, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 82, 114, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 73, 105, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 70, 102, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 89, 121, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 58, 9, 13, 32, 0, 65535, 13, 0, 65535, 10, 10, 9, 32, 9, 32, 33, 37, 39, 58, 86, 118, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 69, 73, 101, 105, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 82, 114, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 58, 9, 13, 32, 0, 65535, 13, 0, 65535, 10, 10, 9, 32, 9, 32, 33, 37, 39, 58, 67, 99, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 69, 101, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 45, 46, 58, 126, 42, 43, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 82, 114, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 79, 111, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 85, 117, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 84, 116, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 69, 101, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 58, 9, 13, 32, 0, 65535, 13, 0, 65535, 10, 10, 9, 32, 9, 32, 33, 37, 39, 58, 83, 115, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 73, 105, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 79, 111, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 78, 110, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 45, 46, 58, 126, 42, 43, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 69, 101, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 88, 120, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 80, 112, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 73, 105, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 82, 114, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 69, 101, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 83, 115, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 58, 9, 13, 32, 0, 65535, 13, 0, 65535, 10, 10, 9, 32, 9, 32, 33, 37, 39, 58, 80, 112, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 45, 46, 58, 126, 42, 43, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 69, 73, 101, 105, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 84, 116, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 65, 97, 126, 42, 43, 45, 46, 48, 57, 66, 90, 95, 122, 9, 32, 33, 37, 39, 58, 71, 103, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 58, 9, 13, 32, 0, 65535, 13, 0, 65535, 10, 10, 9, 32, 9, 32, 33, 37, 39, 58, 70, 102, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 45, 46, 58, 126, 42, 43, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 77, 109, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 65, 97, 126, 42, 43, 45, 46, 48, 57, 66, 90, 95, 122, 9, 32, 33, 37, 39, 58, 84, 116, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 67, 99, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 72, 104, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 58, 9, 13, 32, 0, 65535, 13, 0, 65535, 10, 10, 9, 32, 9, 32, 33, 37, 39, 58, 66, 80, 98, 112, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 74, 83, 106, 115, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 69, 101, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 67, 99, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 84, 116, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 67, 99, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 82, 114, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 73, 105, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 80, 112, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 84, 116, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 73, 105, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 79, 111, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 78, 110, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 45, 46, 58, 126, 42, 43, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 83, 115, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 84, 116, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 65, 97, 126, 42, 43, 45, 46, 48, 57, 66, 90, 95, 122, 9, 32, 33, 37, 39, 58, 84, 116, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 69, 101, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 58, 9, 13, 32, 0, 65535, 13, 0, 65535, 10, 10, 9, 32, 9, 32, 33, 37, 39, 58, 80, 112, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 79, 111, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 82, 114, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 84, 116, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 69, 101, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 68, 100, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 58, 9, 13, 32, 0, 65535, 13, 0, 65535, 10, 10, 9, 32, 9, 32, 33, 37, 39, 58, 65, 73, 79, 97, 105, 111, 126, 42, 43, 45, 46, 48, 57, 66, 90, 95, 122, 9, 32, 33, 37, 39, 58, 82, 114, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 71, 103, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 69, 101, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 84, 116, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 45, 46, 58, 126, 42, 43, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 68, 100, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 73, 105, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 65, 97, 126, 42, 43, 45, 46, 48, 57, 66, 90, 95, 122, 9, 32, 33, 37, 39, 58, 76, 108, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 79, 111, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 71, 103, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 58, 9, 13, 32, 0, 65535, 13, 0, 65535, 10, 10, 9, 32, 9, 32, 33, 37, 39, 58, 77, 109, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 69, 101, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 83, 115, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 84, 116, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 65, 97, 126, 42, 43, 45, 46, 48, 57, 66, 90, 95, 122, 9, 32, 33, 37, 39, 58, 77, 109, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 80, 112, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 58, 9, 13, 32, 0, 65535, 13, 0, 65535, 10, 10, 9, 32, 9, 32, 33, 37, 39, 58, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 58, 9, 13, 32, 0, 65535, 13, 0, 65535, 10, 10, 9, 32, 9, 32, 33, 37, 39, 58, 78, 83, 110, 115, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 83, 115, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 85, 117, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 80, 112, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 80, 112, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 79, 111, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 82, 114, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 84, 116, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 69, 101, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 68, 100, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 58, 9, 13, 32, 0, 65535, 13, 0, 65535, 10, 10, 9, 32, 9, 32, 33, 37, 39, 58, 69, 101, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 82, 114, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 45, 46, 58, 126, 42, 43, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 65, 97, 126, 42, 43, 45, 46, 48, 57, 66, 90, 95, 122, 9, 32, 33, 37, 39, 58, 71, 103, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 69, 101, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 78, 110, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 84, 116, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 58, 9, 13, 32, 0, 65535, 13, 0, 65535, 10, 10, 9, 32, 9, 32, 33, 37, 39, 58, 73, 105, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 65, 97, 126, 42, 43, 45, 46, 48, 57, 66, 90, 95, 122, 9, 32, 33, 37, 39, 58, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 58, 9, 13, 32, 0, 65535, 13, 0, 65535, 10, 10, 9, 32, 9, 32, 33, 37, 39, 58, 65, 87, 97, 119, 126, 42, 43, 45, 46, 48, 57, 66, 90, 95, 122, 9, 32, 33, 37, 39, 58, 82, 114, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 78, 110, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 73, 105, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 78, 110, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 71, 103, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 58, 9, 13, 32, 0, 65535, 13, 0, 65535, 10, 10, 9, 32, 9, 32, 33, 37, 39, 58, 87, 119, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 45, 46, 58, 126, 42, 43, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 65, 97, 126, 42, 43, 45, 46, 48, 57, 66, 90, 95, 122, 9, 32, 33, 37, 39, 58, 85, 117, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 84, 116, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 72, 104, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 69, 101, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 78, 110, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 84, 116, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 73, 105, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 67, 99, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 65, 97, 126, 42, 43, 45, 46, 48, 57, 66, 90, 95, 122, 9, 32, 33, 37, 39, 58, 84, 116, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 69, 101, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 58, 9, 13, 32, 0, 65535, 13, 0, 65535, 10, 13, 0, 65535, 10, 9, 32, 9, 32, 33, 37, 39, 58, 67, 76, 85, 99, 108, 117, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 65, 79, 83, 97, 111, 115, 126, 42, 43, 45, 46, 48, 57, 66, 90, 95, 122, 9, 32, 33, 37, 39, 58, 65, 97, 126, 42, 43, 45, 46, 48, 57, 66, 90, 95, 122, 9, 32, 33, 37, 39, 58, 82, 86, 88, 114, 118, 120, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 82, 114, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 68, 78, 100, 110, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 79, 111, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 65, 73, 97, 105, 126, 42, 43, 45, 46, 48, 57, 66, 90, 95, 122, 9, 32, 33, 37, 39, 58, 65, 69, 79, 83, 97, 101, 111, 115, 126, 42, 43, 45, 46, 48, 57, 66, 90, 95, 122, 9, 32, 33, 37, 39, 58, 65, 73, 79, 97, 105, 111, 126, 42, 43, 45, 46, 48, 57, 66, 90, 95, 122, 9, 32, 33, 37, 39, 58, 78, 83, 110, 115, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 73, 105, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 9, 32, 33, 37, 39, 58, 126, 42, 43, 45, 46, 48, 57, 65, 90, 95, 122, 13, 0, 65535, 13, 0, 65535, 0]; _tsip_machine_parser_headers_single_lengths = [0, 44, 7, 3, 3, 1, 1, 1, 2, 13, 9, 9, 9, 9, 9, 3, 3, 1, 1, 1, 2, 15, 9, 9, 9, 9, 9, 9, 7, 3, 3, 1, 1, 1, 2, 9, 9, 9, 9, 9, 9, 9, 7, 3, 3, 1, 1, 1, 2, 9, 9, 9, 9, 9, 9, 9, 7, 3, 3, 1, 1, 1, 2, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 7, 3, 3, 1, 1, 1, 2, 11, 9, 9, 9, 9, 9, 9, 9, 7, 3, 3, 1, 1, 1, 2, 9, 9, 9, 3, 3, 1, 1, 1, 2, 9, 9, 9, 9, 9, 9, 7, 3, 3, 1, 1, 1, 2, 9, 9, 11, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 7, 3, 3, 1, 1, 1, 2, 9, 9, 9, 9, 9, 9, 9, 9, 7, 3, 3, 1, 1, 1, 2, 13, 9, 9, 9, 9, 11, 7, 3, 3, 1, 1, 1, 2, 9, 9, 7, 3, 3, 1, 1, 1, 2, 9, 9, 11, 9, 9, 7, 3, 3, 1, 1, 1, 2, 9, 9, 9, 15, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 7, 3, 3, 1, 1, 1, 2, 9, 9, 9, 9, 9, 9, 9, 7, 3, 3, 1, 1, 1, 2, 11, 9, 9, 9, 9, 9, 9, 7, 3, 3, 1, 1, 1, 2, 9, 9, 9, 9, 7, 3, 3, 1, 1, 1, 2, 9, 9, 9, 7, 3, 3, 1, 1, 1, 2, 9, 9, 7, 3, 3, 1, 1, 1, 2, 9, 9, 9, 7, 3, 3, 1, 1, 1, 2, 13, 9, 9, 9, 9, 9, 9, 9, 9, 7, 3, 3, 1, 1, 1, 2, 9, 9, 9, 7, 3, 3, 1, 1, 1, 2, 9, 9, 9, 9, 9, 7, 3, 3, 1, 1, 1, 2, 9, 9, 9, 7, 3, 3, 1, 1, 1, 2, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 7, 3, 3, 1, 1, 1, 2, 11, 9, 9, 9, 9, 9, 9, 9, 3, 3, 1, 1, 1, 2, 9, 9, 9, 9, 7, 3, 3, 1, 1, 1, 2, 8, 9, 9, 9, 9, 9, 9, 9, 9, 7, 3, 3, 1, 1, 1, 2, 9, 9, 9, 7, 3, 3, 1, 1, 1, 2, 11, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 7, 3, 3, 1, 1, 1, 2, 11, 9, 9, 9, 9, 9, 9, 9, 9, 9, 7, 3, 3, 1, 1, 1, 2, 9, 11, 9, 9, 9, 9, 9, 9, 7, 3, 3, 1, 1, 1, 2, 9, 7, 3, 3, 1, 1, 1, 2, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 7, 3, 3, 1, 1, 1, 2, 13, 23, 13, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 7, 3, 3, 1, 1, 1, 2, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 7, 3, 3, 1, 1, 1, 2, 9, 11, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 7, 3, 3, 1, 1, 1, 2, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 7, 3, 3, 1, 1, 1, 2, 11, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 7, 3, 3, 1, 1, 1, 2, 9, 9, 9, 9, 9, 9, 9, 11, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 7, 3, 3, 1, 1, 1, 2, 9, 9, 9, 9, 9, 7, 3, 3, 1, 1, 1, 2, 9, 9, 9, 17, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 7, 3, 3, 1, 1, 1, 2, 9, 9, 9, 7, 3, 3, 1, 1, 1, 2, 9, 9, 9, 7, 3, 3, 1, 1, 1, 2, 9, 9, 9, 9, 9, 9, 9, 7, 3, 3, 1, 1, 1, 2, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 7, 3, 3, 1, 1, 1, 2, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 7, 3, 3, 1, 1, 1, 2, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 7, 3, 3, 1, 1, 1, 2, 9, 11, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 7, 3, 3, 1, 1, 1, 2, 9, 9, 9, 9, 9, 9, 9, 9, 7, 3, 3, 1, 1, 1, 2, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 7, 3, 3, 1, 1, 1, 2, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 7, 3, 3, 1, 1, 1, 2, 9, 9, 7, 3, 3, 1, 1, 1, 2, 11, 11, 9, 9, 9, 9, 7, 3, 3, 1, 1, 1, 2, 9, 9, 9, 7, 3, 3, 1, 1, 1, 2, 9, 9, 9, 11, 9, 9, 9, 11, 9, 9, 9, 9, 9, 9, 9, 7, 3, 3, 1, 2, 1, 2, 9, 9, 9, 9, 9, 9, 9, 9, 7, 3, 3, 1, 1, 1, 2, 9, 9, 9, 9, 9, 9, 7, 3, 3, 1, 1, 1, 2, 15, 9, 9, 7, 3, 3, 1, 1, 1, 2, 23, 9, 9, 9, 7, 3, 3, 1, 1, 1, 2, 9, 9, 9, 9, 9, 9, 9, 9, 9, 7, 3, 3, 1, 1, 1, 2, 9, 9, 11, 11, 9, 9, 7, 3, 3, 1, 1, 1, 2, 9, 7, 3, 3, 1, 1, 1, 2, 9, 9, 9, 9, 9, 7, 3, 3, 1, 1, 1, 2, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 7, 3, 3, 1, 1, 1, 2, 9, 11, 9, 9, 9, 7, 3, 3, 1, 1, 1, 2, 9, 9, 9, 7, 3, 3, 1, 1, 1, 2, 9, 11, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 7, 3, 3, 1, 1, 1, 2, 9, 9, 7, 3, 3, 1, 1, 1, 2, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 7, 3, 3, 1, 1, 1, 2, 9, 9, 9, 9, 9, 9, 9, 9, 7, 3, 3, 1, 1, 1, 2, 9, 9, 9, 7, 3, 3, 1, 1, 1, 2, 9, 9, 7, 3, 3, 1, 1, 1, 2, 13, 3, 3, 1, 1, 1, 2, 13, 9, 9, 9, 9, 9, 9, 13, 9, 9, 9, 9, 9, 7, 3, 3, 1, 1, 1, 2, 9, 9, 9, 9, 9, 7, 3, 3, 1, 1, 1, 2, 9, 9, 9, 9, 9, 7, 3, 3, 1, 1, 1, 2, 9, 11, 9, 7, 3, 3, 1, 1, 1, 2, 9, 9, 9, 9, 9, 9, 9, 9, 7, 3, 3, 1, 1, 1, 2, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 7, 3, 3, 1, 1, 1, 2, 9, 9, 11, 9, 9, 9, 7, 3, 3, 1, 1, 1, 2, 9, 9, 9, 9, 9, 9, 9, 7, 3, 3, 1, 1, 1, 2, 11, 11, 9, 9, 9, 7, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 7, 3, 3, 1, 1, 1, 2, 9, 9, 9, 9, 9, 9, 7, 3, 3, 1, 1, 1, 2, 13, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 7, 3, 3, 1, 1, 1, 2, 9, 9, 9, 9, 9, 9, 9, 7, 3, 3, 1, 1, 1, 2, 7, 3, 3, 1, 1, 1, 2, 11, 9, 9, 9, 9, 9, 9, 9, 9, 9, 7, 3, 3, 1, 1, 1, 2, 9, 9, 9, 9, 9, 9, 9, 9, 7, 3, 3, 1, 1, 1, 2, 9, 9, 7, 3, 3, 1, 1, 1, 2, 11, 9, 9, 9, 9, 9, 7, 3, 3, 1, 1, 1, 2, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 7, 3, 3, 1, 2, 1, 2, 13, 13, 9, 13, 9, 11, 9, 11, 15, 13, 11, 9, 7, 0, 1, 1]; _tsip_machine_parser_headers_range_lengths = [0, 5, 5, 0, 1, 1, 0, 0, 0, 5, 5, 5, 5, 5, 4, 0, 1, 1, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 0, 1, 1, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 0, 1, 1, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 0, 1, 1, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 1, 1, 0, 0, 0, 5, 5, 5, 4, 5, 5, 5, 5, 5, 0, 1, 1, 0, 0, 0, 5, 5, 4, 0, 1, 1, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 0, 1, 1, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 4, 5, 5, 5, 5, 5, 0, 1, 1, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 1, 1, 0, 0, 0, 5, 5, 5, 4, 5, 5, 5, 0, 1, 1, 0, 0, 0, 5, 5, 5, 0, 1, 1, 0, 0, 0, 5, 5, 5, 5, 5, 5, 0, 1, 1, 0, 0, 0, 5, 5, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 1, 1, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 0, 1, 1, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 0, 1, 1, 0, 0, 0, 5, 5, 5, 5, 5, 0, 1, 1, 0, 0, 0, 5, 5, 5, 5, 0, 1, 1, 0, 0, 0, 5, 5, 5, 0, 1, 1, 0, 0, 0, 5, 5, 5, 5, 0, 1, 1, 0, 0, 0, 5, 5, 5, 5, 4, 5, 5, 5, 5, 5, 0, 1, 1, 0, 0, 0, 5, 5, 5, 5, 0, 1, 1, 0, 0, 0, 5, 5, 5, 5, 5, 5, 0, 1, 1, 0, 0, 0, 5, 5, 5, 5, 0, 1, 1, 0, 0, 0, 5, 5, 5, 5, 5, 5, 4, 5, 5, 5, 5, 5, 0, 1, 1, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 4, 0, 1, 1, 0, 0, 0, 5, 5, 5, 5, 5, 0, 1, 1, 0, 0, 0, 5, 5, 5, 5, 5, 5, 4, 5, 5, 5, 0, 1, 1, 0, 0, 0, 5, 5, 5, 5, 0, 1, 1, 0, 0, 0, 5, 5, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 1, 1, 0, 0, 0, 5, 5, 4, 5, 5, 5, 5, 5, 5, 5, 5, 0, 1, 1, 0, 0, 0, 4, 5, 5, 5, 5, 5, 5, 5, 5, 0, 1, 1, 0, 0, 0, 5, 5, 0, 1, 1, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 1, 1, 0, 0, 0, 4, 5, 5, 5, 5, 5, 5, 4, 5, 5, 5, 5, 5, 5, 5, 4, 5, 5, 5, 5, 5, 0, 1, 1, 0, 0, 0, 5, 5, 5, 5, 4, 5, 5, 5, 5, 5, 5, 0, 1, 1, 0, 0, 0, 5, 5, 5, 5, 5, 5, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 1, 1, 0, 0, 0, 5, 5, 5, 5, 5, 5, 4, 5, 5, 5, 5, 0, 1, 1, 0, 0, 0, 5, 5, 5, 5, 5, 4, 5, 5, 5, 5, 5, 4, 5, 5, 5, 0, 1, 1, 0, 0, 0, 5, 5, 5, 5, 5, 5, 4, 5, 5, 5, 5, 5, 5, 5, 5, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 1, 1, 0, 0, 0, 5, 5, 5, 5, 5, 5, 0, 1, 1, 0, 0, 0, 5, 5, 4, 5, 5, 5, 5, 5, 5, 5, 4, 5, 5, 5, 5, 5, 0, 1, 1, 0, 0, 0, 5, 5, 5, 5, 0, 1, 1, 0, 0, 0, 5, 5, 5, 5, 0, 1, 1, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 0, 1, 1, 0, 0, 0, 5, 5, 5, 5, 4, 5, 5, 5, 5, 5, 4, 5, 5, 5, 0, 1, 1, 0, 0, 0, 5, 5, 5, 5, 4, 5, 5, 5, 5, 5, 5, 0, 1, 1, 0, 0, 0, 5, 5, 5, 5, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 1, 1, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 1, 1, 0, 0, 0, 5, 5, 5, 5, 4, 5, 5, 5, 5, 0, 1, 1, 0, 0, 0, 5, 5, 5, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 1, 1, 0, 0, 0, 5, 5, 5, 5, 5, 5, 4, 5, 5, 5, 5, 5, 5, 5, 4, 5, 5, 5, 0, 1, 1, 0, 0, 0, 5, 5, 5, 0, 1, 1, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 0, 1, 1, 0, 0, 0, 5, 5, 5, 5, 0, 1, 1, 0, 0, 0, 5, 5, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 1, 1, 1, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 1, 1, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 0, 1, 1, 0, 0, 0, 5, 5, 5, 5, 0, 1, 1, 0, 0, 0, 5, 5, 5, 5, 5, 0, 1, 1, 0, 0, 0, 5, 5, 5, 4, 5, 5, 5, 5, 5, 5, 0, 1, 1, 0, 0, 0, 5, 5, 4, 5, 5, 5, 5, 0, 1, 1, 0, 0, 0, 5, 5, 0, 1, 1, 0, 0, 0, 5, 5, 4, 5, 5, 5, 0, 1, 1, 0, 0, 0, 5, 5, 5, 4, 5, 5, 5, 5, 5, 5, 5, 5, 0, 1, 1, 0, 0, 0, 5, 5, 5, 5, 5, 5, 0, 1, 1, 0, 0, 0, 4, 5, 5, 5, 0, 1, 1, 0, 0, 0, 5, 5, 5, 5, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 1, 1, 0, 0, 0, 5, 5, 5, 0, 1, 1, 0, 0, 0, 5, 5, 5, 5, 5, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 1, 1, 0, 0, 0, 5, 5, 4, 5, 5, 5, 5, 5, 5, 0, 1, 1, 0, 0, 0, 5, 5, 5, 5, 0, 1, 1, 0, 0, 0, 5, 5, 5, 0, 1, 1, 0, 0, 0, 5, 0, 1, 1, 0, 0, 0, 5, 5, 5, 5, 5, 5, 4, 5, 5, 5, 5, 5, 5, 5, 0, 1, 1, 0, 0, 0, 5, 5, 5, 5, 5, 5, 0, 1, 1, 0, 0, 0, 5, 5, 5, 5, 5, 5, 0, 1, 1, 0, 0, 0, 5, 5, 5, 5, 0, 1, 1, 0, 0, 0, 5, 5, 4, 5, 5, 5, 5, 5, 5, 0, 1, 1, 0, 0, 0, 5, 5, 5, 5, 4, 5, 5, 5, 5, 5, 5, 5, 5, 0, 1, 1, 0, 0, 0, 5, 4, 5, 5, 5, 5, 5, 0, 1, 1, 0, 0, 0, 5, 4, 5, 5, 5, 5, 5, 5, 0, 1, 1, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 4, 5, 5, 5, 5, 5, 5, 0, 1, 1, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 0, 1, 1, 0, 0, 0, 5, 5, 5, 5, 5, 4, 5, 5, 5, 5, 5, 5, 5, 0, 1, 1, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 0, 1, 1, 0, 0, 0, 5, 0, 1, 1, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 1, 1, 0, 0, 0, 5, 5, 4, 5, 5, 5, 5, 5, 5, 0, 1, 1, 0, 0, 0, 5, 5, 5, 0, 1, 1, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 0, 1, 1, 0, 0, 0, 5, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 1, 1, 1, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 1, 1]; _tsip_machine_parser_headers_index_offsets = [0, 0, 50, 63, 67, 72, 75, 77, 79, 82, 101, 116, 131, 146, 161, 175, 179, 184, 187, 189, 191, 194, 215, 230, 245, 260, 275, 290, 305, 318, 322, 327, 330, 332, 334, 337, 352, 367, 382, 397, 412, 427, 442, 455, 459, 464, 467, 469, 471, 474, 489, 504, 519, 534, 549, 564, 579, 592, 596, 601, 604, 606, 608, 611, 626, 641, 656, 671, 686, 701, 716, 730, 745, 760, 775, 790, 805, 820, 835, 850, 863, 867, 872, 875, 877, 879, 882, 899, 914, 929, 943, 958, 973, 988, 1003, 1016, 1020, 1025, 1028, 1030, 1032, 1035, 1050, 1065, 1079, 1083, 1088, 1091, 1093, 1095, 1098, 1113, 1128, 1143, 1158, 1173, 1188, 1201, 1205, 1210, 1213, 1215, 1217, 1220, 1235, 1250, 1267, 1282, 1297, 1312, 1327, 1342, 1357, 1372, 1387, 1402, 1416, 1431, 1446, 1461, 1476, 1489, 1493, 1498, 1501, 1503, 1505, 1508, 1523, 1538, 1553, 1568, 1583, 1598, 1613, 1628, 1641, 1645, 1650, 1653, 1655, 1657, 1660, 1679, 1694, 1709, 1723, 1738, 1755, 1768, 1772, 1777, 1780, 1782, 1784, 1787, 1802, 1817, 1830, 1834, 1839, 1842, 1844, 1846, 1849, 1864, 1879, 1896, 1911, 1926, 1939, 1943, 1948, 1951, 1953, 1955, 1958, 1973, 1988, 2002, 2023, 2038, 2053, 2068, 2083, 2098, 2113, 2128, 2143, 2158, 2173, 2186, 2190, 2195, 2198, 2200, 2202, 2205, 2220, 2235, 2250, 2265, 2280, 2295, 2310, 2323, 2327, 2332, 2335, 2337, 2339, 2342, 2359, 2374, 2389, 2404, 2419, 2434, 2449, 2462, 2466, 2471, 2474, 2476, 2478, 2481, 2496, 2511, 2526, 2541, 2554, 2558, 2563, 2566, 2568, 2570, 2573, 2588, 2603, 2618, 2631, 2635, 2640, 2643, 2645, 2647, 2650, 2665, 2680, 2693, 2697, 2702, 2705, 2707, 2709, 2712, 2727, 2742, 2757, 2770, 2774, 2779, 2782, 2784, 2786, 2789, 2808, 2823, 2838, 2853, 2867, 2882, 2897, 2912, 2927, 2940, 2944, 2949, 2952, 2954, 2956, 2959, 2974, 2989, 3004, 3017, 3021, 3026, 3029, 3031, 3033, 3036, 3051, 3066, 3081, 3096, 3111, 3124, 3128, 3133, 3136, 3138, 3140, 3143, 3158, 3173, 3188, 3201, 3205, 3210, 3213, 3215, 3217, 3220, 3235, 3250, 3265, 3280, 3295, 3310, 3324, 3339, 3354, 3369, 3384, 3397, 3401, 3406, 3409, 3411, 3413, 3416, 3433, 3448, 3463, 3478, 3493, 3508, 3523, 3537, 3541, 3546, 3549, 3551, 3553, 3556, 3571, 3586, 3601, 3616, 3629, 3633, 3638, 3641, 3643, 3645, 3648, 3662, 3677, 3692, 3707, 3722, 3737, 3751, 3766, 3781, 3794, 3798, 3803, 3806, 3808, 3810, 3813, 3828, 3843, 3858, 3871, 3875, 3880, 3883, 3885, 3887, 3890, 3907, 3922, 3936, 3951, 3966, 3981, 3996, 4011, 4026, 4041, 4056, 4069, 4073, 4078, 4081, 4083, 4085, 4088, 4105, 4120, 4134, 4149, 4164, 4179, 4194, 4209, 4224, 4239, 4252, 4256, 4261, 4264, 4266, 4268, 4271, 4285, 4302, 4317, 4332, 4347, 4362, 4377, 4392, 4405, 4409, 4414, 4417, 4419, 4421, 4424, 4439, 4452, 4456, 4461, 4464, 4466, 4468, 4471, 4486, 4501, 4516, 4531, 4546, 4561, 4576, 4591, 4606, 4621, 4636, 4649, 4653, 4658, 4661, 4663, 4665, 4668, 4686, 4715, 4734, 4749, 4764, 4779, 4794, 4808, 4823, 4838, 4853, 4868, 4883, 4898, 4913, 4927, 4942, 4957, 4972, 4987, 5000, 5004, 5009, 5012, 5014, 5016, 5019, 5034, 5049, 5064, 5079, 5093, 5108, 5123, 5138, 5153, 5168, 5181, 5185, 5190, 5193, 5195, 5197, 5200, 5215, 5232, 5247, 5262, 5277, 5292, 5306, 5321, 5336, 5351, 5366, 5381, 5396, 5411, 5426, 5439, 5443, 5448, 5451, 5453, 5455, 5458, 5473, 5488, 5503, 5518, 5533, 5548, 5562, 5577, 5592, 5607, 5620, 5624, 5629, 5632, 5634, 5636, 5639, 5656, 5671, 5686, 5701, 5716, 5730, 5745, 5760, 5775, 5790, 5805, 5819, 5834, 5849, 5862, 5866, 5871, 5874, 5876, 5878, 5881, 5896, 5911, 5926, 5941, 5956, 5971, 5985, 6002, 6017, 6032, 6047, 6062, 6077, 6092, 6107, 6121, 6136, 6151, 6166, 6181, 6196, 6211, 6226, 6241, 6256, 6269, 6273, 6278, 6281, 6283, 6285, 6288, 6303, 6318, 6333, 6348, 6363, 6376, 6380, 6385, 6388, 6390, 6392, 6395, 6410, 6425, 6439, 6462, 6477, 6492, 6507, 6522, 6537, 6552, 6566, 6581, 6596, 6611, 6626, 6639, 6643, 6648, 6651, 6653, 6655, 6658, 6673, 6688, 6703, 6716, 6720, 6725, 6728, 6730, 6732, 6735, 6750, 6765, 6780, 6793, 6797, 6802, 6805, 6807, 6809, 6812, 6827, 6842, 6857, 6872, 6887, 6902, 6917, 6930, 6934, 6939, 6942, 6944, 6946, 6949, 6964, 6979, 6994, 7009, 7023, 7038, 7053, 7068, 7083, 7098, 7112, 7127, 7142, 7155, 7159, 7164, 7167, 7169, 7171, 7174, 7189, 7204, 7219, 7234, 7248, 7263, 7278, 7293, 7308, 7323, 7336, 7340, 7345, 7348, 7350, 7352, 7355, 7370, 7385, 7400, 7415, 7429, 7444, 7459, 7474, 7489, 7504, 7519, 7534, 7549, 7564, 7579, 7594, 7609, 7624, 7637, 7641, 7646, 7649, 7651, 7653, 7656, 7671, 7688, 7703, 7718, 7733, 7748, 7763, 7778, 7792, 7807, 7822, 7837, 7852, 7867, 7882, 7897, 7912, 7925, 7929, 7934, 7937, 7939, 7941, 7944, 7959, 7974, 7989, 8004, 8018, 8033, 8048, 8063, 8076, 8080, 8085, 8088, 8090, 8092, 8095, 8110, 8125, 8140, 8154, 8169, 8184, 8199, 8214, 8229, 8244, 8259, 8274, 8287, 8291, 8296, 8299, 8301, 8303, 8306, 8321, 8336, 8351, 8366, 8381, 8396, 8410, 8425, 8440, 8455, 8470, 8485, 8500, 8515, 8529, 8544, 8559, 8572, 8576, 8581, 8584, 8586, 8588, 8591, 8606, 8621, 8634, 8638, 8643, 8646, 8648, 8650, 8653, 8670, 8687, 8702, 8717, 8732, 8747, 8760, 8764, 8769, 8772, 8774, 8776, 8779, 8794, 8809, 8824, 8837, 8841, 8846, 8849, 8851, 8853, 8856, 8871, 8886, 8900, 8917, 8932, 8947, 8962, 8979, 8994, 9009, 9024, 9039, 9054, 9069, 9084, 9097, 9101, 9106, 9109, 9113, 9115, 9118, 9133, 9148, 9163, 9178, 9193, 9208, 9223, 9238, 9251, 9255, 9260, 9263, 9265, 9267, 9270, 9285, 9300, 9315, 9330, 9345, 9360, 9373, 9377, 9382, 9385, 9387, 9389, 9392, 9413, 9428, 9443, 9456, 9460, 9465, 9468, 9470, 9472, 9475, 9504, 9519, 9534, 9549, 9562, 9566, 9571, 9574, 9576, 9578, 9581, 9596, 9611, 9626, 9640, 9655, 9670, 9685, 9700, 9715, 9728, 9732, 9737, 9740, 9742, 9744, 9747, 9762, 9777, 9793, 9810, 9825, 9840, 9853, 9857, 9862, 9865, 9867, 9869, 9872, 9887, 9900, 9904, 9909, 9912, 9914, 9916, 9919, 9934, 9949, 9963, 9978, 9993, 10006, 10010, 10015, 10018, 10020, 10022, 10025, 10040, 10055, 10070, 10084, 10099, 10114, 10129, 10144, 10159, 10174, 10189, 10202, 10206, 10211, 10214, 10216, 10218, 10221, 10236, 10253, 10268, 10283, 10298, 10311, 10315, 10320, 10323, 10325, 10327, 10330, 10344, 10359, 10374, 10387, 10391, 10396, 10399, 10401, 10403, 10406, 10421, 10438, 10453, 10468, 10482, 10497, 10512, 10527, 10542, 10557, 10572, 10587, 10602, 10617, 10632, 10647, 10660, 10664, 10669, 10672, 10674, 10676, 10679, 10694, 10709, 10722, 10726, 10731, 10734, 10736, 10738, 10741, 10756, 10771, 10786, 10801, 10816, 10830, 10845, 10860, 10875, 10890, 10905, 10920, 10935, 10950, 10963, 10967, 10972, 10975, 10977, 10979, 10982, 10997, 11012, 11026, 11041, 11056, 11071, 11086, 11101, 11114, 11118, 11123, 11126, 11128, 11130, 11133, 11148, 11163, 11178, 11191, 11195, 11200, 11203, 11205, 11207, 11210, 11225, 11240, 11253, 11257, 11262, 11265, 11267, 11269, 11272, 11291, 11295, 11300, 11303, 11305, 11307, 11310, 11329, 11344, 11359, 11374, 11389, 11404, 11418, 11437, 11452, 11467, 11482, 11497, 11512, 11525, 11529, 11534, 11537, 11539, 11541, 11544, 11559, 11574, 11589, 11604, 11619, 11632, 11636, 11641, 11644, 11646, 11648, 11651, 11666, 11681, 11696, 11711, 11726, 11739, 11743, 11748, 11751, 11753, 11755, 11758, 11773, 11790, 11805, 11818, 11822, 11827, 11830, 11832, 11834, 11837, 11852, 11867, 11881, 11896, 11911, 11926, 11941, 11956, 11969, 11973, 11978, 11981, 11983, 11985, 11988, 12003, 12018, 12033, 12048, 12062, 12077, 12092, 12107, 12122, 12137, 12152, 12167, 12180, 12184, 12189, 12192, 12194, 12196, 12199, 12214, 12228, 12245, 12260, 12275, 12290, 12303, 12307, 12312, 12315, 12317, 12319, 12322, 12337, 12351, 12366, 12381, 12396, 12411, 12426, 12439, 12443, 12448, 12451, 12453, 12455, 12458, 12475, 12492, 12507, 12522, 12537, 12550, 12565, 12580, 12595, 12610, 12625, 12640, 12655, 12670, 12684, 12699, 12714, 12729, 12744, 12759, 12772, 12776, 12781, 12784, 12786, 12788, 12791, 12806, 12821, 12836, 12851, 12866, 12881, 12894, 12898, 12903, 12906, 12908, 12910, 12913, 12932, 12947, 12962, 12977, 12992, 13006, 13021, 13036, 13051, 13066, 13081, 13096, 13109, 13113, 13118, 13121, 13123, 13125, 13128, 13143, 13158, 13173, 13188, 13203, 13218, 13233, 13246, 13250, 13255, 13258, 13260, 13262, 13265, 13278, 13282, 13287, 13290, 13292, 13294, 13297, 13314, 13329, 13344, 13359, 13374, 13389, 13404, 13419, 13434, 13449, 13462, 13466, 13471, 13474, 13476, 13478, 13481, 13496, 13511, 13525, 13540, 13555, 13570, 13585, 13600, 13613, 13617, 13622, 13625, 13627, 13629, 13632, 13647, 13662, 13675, 13679, 13684, 13687, 13689, 13691, 13694, 13711, 13726, 13741, 13756, 13771, 13786, 13799, 13803, 13808, 13811, 13813, 13815, 13818, 13833, 13847, 13862, 13877, 13892, 13907, 13922, 13937, 13952, 13967, 13982, 13997, 14012, 14027, 14040, 14044, 14049, 14052, 14056, 14058, 14061, 14080, 14099, 14114, 14133, 14148, 14165, 14180, 14197, 14218, 14237, 14254, 14269, 14282, 14283, 14286]; _tsip_machine_parser_headers_indicies = [0, 0, 0, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 7, 25, 26, 27, 28, 29, 30, 11, 12, 31, 14, 32, 33, 34, 18, 35, 36, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 0, 0, 0, 0, 0, 0, 1, 37, 37, 38, 1, 38, 40, 38, 39, 1, 41, 39, 1, 42, 1, 43, 1, 39, 39, 1, 37, 37, 0, 0, 0, 38, 44, 45, 46, 44, 45, 46, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 47, 47, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 48, 48, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 49, 49, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 50, 50, 0, 0, 0, 0, 0, 0, 1, 51, 51, 0, 0, 0, 52, 0, 53, 0, 0, 0, 0, 0, 1, 51, 51, 53, 1, 53, 55, 53, 54, 1, 56, 54, 1, 57, 1, 58, 1, 54, 54, 1, 37, 37, 0, 0, 0, 38, 59, 60, 61, 62, 59, 60, 61, 62, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 63, 63, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 64, 64, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 65, 65, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 66, 66, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 67, 67, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 68, 68, 0, 0, 0, 0, 0, 0, 1, 69, 69, 0, 0, 0, 70, 0, 0, 0, 0, 0, 0, 1, 69, 69, 70, 1, 70, 72, 70, 71, 1, 73, 71, 1, 74, 1, 75, 1, 71, 71, 1, 37, 37, 0, 0, 0, 38, 76, 76, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 77, 77, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 78, 78, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 79, 79, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 80, 80, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 81, 81, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 82, 82, 0, 0, 0, 0, 0, 0, 1, 83, 83, 0, 0, 0, 84, 0, 0, 0, 0, 0, 0, 1, 83, 83, 84, 1, 84, 86, 84, 85, 1, 87, 85, 1, 88, 1, 89, 1, 85, 85, 1, 37, 37, 0, 0, 0, 38, 90, 90, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 91, 91, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 92, 92, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 93, 93, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 94, 94, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 95, 95, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 96, 96, 0, 0, 0, 0, 0, 0, 1, 97, 97, 0, 0, 0, 98, 0, 0, 0, 0, 0, 0, 1, 97, 97, 98, 1, 98, 100, 98, 99, 1, 101, 99, 1, 102, 1, 103, 1, 99, 99, 1, 37, 37, 0, 0, 0, 38, 104, 104, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 105, 105, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 106, 106, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 107, 107, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 108, 108, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 109, 109, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 110, 110, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 111, 0, 38, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 112, 112, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 113, 113, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 114, 114, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 115, 115, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 116, 116, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 117, 117, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 118, 118, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 119, 119, 0, 0, 0, 0, 0, 0, 1, 120, 120, 0, 0, 0, 121, 0, 0, 0, 0, 0, 0, 1, 120, 120, 121, 1, 121, 123, 121, 122, 1, 124, 122, 1, 125, 1, 126, 1, 122, 122, 1, 37, 37, 0, 0, 0, 38, 127, 128, 127, 128, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 129, 129, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 130, 130, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 131, 0, 38, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 132, 132, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 133, 133, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 134, 134, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 135, 135, 0, 0, 0, 0, 0, 0, 1, 136, 136, 0, 0, 0, 137, 0, 0, 0, 0, 0, 0, 1, 136, 136, 137, 1, 137, 139, 137, 138, 1, 140, 138, 1, 141, 1, 142, 1, 138, 138, 1, 37, 37, 0, 0, 0, 38, 143, 143, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 144, 144, 0, 0, 0, 0, 0, 0, 1, 145, 145, 0, 0, 0, 146, 0, 147, 0, 0, 0, 0, 0, 1, 145, 145, 147, 1, 147, 149, 147, 148, 1, 150, 148, 1, 151, 1, 152, 1, 148, 148, 1, 37, 37, 0, 0, 0, 38, 153, 153, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 154, 154, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 155, 155, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 156, 156, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 157, 157, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 158, 158, 0, 0, 0, 0, 0, 0, 1, 159, 159, 0, 0, 0, 160, 0, 0, 0, 0, 0, 0, 1, 159, 159, 160, 1, 160, 162, 160, 161, 1, 163, 161, 1, 164, 1, 165, 1, 161, 161, 1, 37, 37, 0, 0, 0, 38, 166, 166, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 167, 167, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 168, 169, 168, 169, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 170, 170, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 171, 171, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 172, 172, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 173, 173, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 174, 174, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 175, 175, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 176, 176, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 177, 177, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 178, 178, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 179, 0, 38, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 180, 180, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 181, 181, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 182, 182, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 183, 183, 0, 0, 0, 0, 0, 0, 1, 184, 184, 0, 0, 0, 185, 0, 0, 0, 0, 0, 0, 1, 184, 184, 185, 1, 185, 187, 185, 186, 1, 188, 186, 1, 189, 1, 190, 1, 186, 186, 1, 37, 37, 0, 0, 0, 38, 191, 191, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 192, 192, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 193, 193, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 194, 194, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 195, 195, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 196, 196, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 197, 197, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 198, 198, 0, 0, 0, 0, 0, 0, 1, 199, 199, 0, 0, 0, 200, 0, 0, 0, 0, 0, 0, 1, 199, 199, 200, 1, 200, 202, 200, 201, 1, 203, 201, 1, 204, 1, 205, 1, 201, 201, 1, 37, 37, 0, 0, 0, 38, 206, 207, 208, 206, 207, 208, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 209, 209, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 210, 210, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 211, 0, 38, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 212, 212, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 213, 214, 213, 214, 0, 0, 0, 0, 0, 0, 1, 215, 215, 0, 0, 0, 216, 0, 0, 0, 0, 0, 0, 1, 215, 215, 216, 1, 216, 218, 216, 217, 1, 219, 217, 1, 220, 1, 221, 1, 217, 217, 1, 37, 37, 0, 0, 0, 38, 222, 222, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 223, 223, 0, 0, 0, 0, 0, 0, 1, 224, 224, 0, 0, 0, 225, 0, 0, 0, 0, 0, 0, 1, 224, 224, 225, 1, 225, 227, 225, 226, 1, 228, 226, 1, 229, 1, 230, 1, 226, 226, 1, 37, 37, 0, 0, 0, 38, 231, 231, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 232, 232, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 233, 234, 233, 234, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 235, 235, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 236, 236, 0, 0, 0, 0, 0, 0, 1, 237, 237, 0, 0, 0, 238, 0, 0, 0, 0, 0, 0, 1, 237, 237, 238, 1, 238, 240, 238, 239, 1, 241, 239, 1, 242, 1, 243, 1, 239, 239, 1, 37, 37, 0, 0, 0, 38, 244, 244, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 245, 245, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 246, 0, 38, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 247, 248, 249, 250, 247, 248, 249, 250, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 251, 251, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 252, 252, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 253, 253, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 254, 254, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 255, 255, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 256, 256, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 257, 257, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 258, 258, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 259, 259, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 260, 260, 0, 0, 0, 0, 0, 0, 1, 261, 261, 0, 0, 0, 262, 0, 0, 0, 0, 0, 0, 1, 261, 261, 262, 1, 262, 264, 262, 263, 1, 265, 263, 1, 266, 1, 267, 1, 263, 263, 1, 37, 37, 0, 0, 0, 38, 268, 268, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 269, 269, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 270, 270, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 271, 271, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 272, 272, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 273, 273, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 274, 274, 0, 0, 0, 0, 0, 0, 1, 275, 275, 0, 0, 0, 276, 0, 0, 0, 0, 0, 0, 1, 275, 275, 276, 1, 276, 278, 276, 277, 1, 279, 277, 1, 280, 1, 281, 1, 277, 277, 1, 37, 37, 0, 0, 0, 38, 282, 283, 282, 283, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 284, 284, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 285, 285, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 286, 286, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 287, 287, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 288, 288, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 289, 289, 0, 0, 0, 0, 0, 0, 1, 290, 290, 0, 0, 0, 291, 0, 0, 0, 0, 0, 0, 1, 290, 290, 291, 1, 291, 293, 291, 292, 1, 294, 292, 1, 295, 1, 296, 1, 292, 292, 1, 37, 37, 0, 0, 0, 38, 297, 297, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 298, 298, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 299, 299, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 28, 28, 0, 0, 0, 0, 0, 0, 1, 300, 300, 0, 0, 0, 301, 0, 0, 0, 0, 0, 0, 1, 300, 300, 301, 1, 301, 303, 301, 302, 1, 304, 302, 1, 305, 1, 306, 1, 302, 302, 1, 37, 37, 0, 0, 0, 38, 307, 307, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 308, 308, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 309, 309, 0, 0, 0, 0, 0, 0, 1, 310, 310, 0, 0, 0, 311, 0, 0, 0, 0, 0, 0, 1, 310, 310, 311, 1, 311, 313, 311, 312, 1, 314, 312, 1, 315, 1, 316, 1, 312, 312, 1, 37, 37, 0, 0, 0, 38, 317, 317, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 318, 318, 0, 0, 0, 0, 0, 0, 1, 319, 319, 0, 0, 0, 320, 0, 0, 0, 0, 0, 0, 1, 319, 319, 320, 1, 320, 322, 320, 321, 1, 323, 321, 1, 324, 1, 325, 1, 321, 321, 1, 37, 37, 0, 0, 0, 38, 326, 326, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 327, 327, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 328, 328, 0, 0, 0, 0, 0, 0, 1, 329, 329, 0, 0, 0, 330, 0, 0, 0, 0, 0, 0, 1, 329, 329, 330, 1, 330, 332, 330, 331, 1, 333, 331, 1, 334, 1, 335, 1, 331, 331, 1, 37, 37, 0, 0, 0, 38, 336, 337, 338, 336, 337, 338, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 339, 339, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 340, 340, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 341, 341, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 342, 0, 38, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 343, 343, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 344, 344, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 345, 345, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 346, 346, 0, 0, 0, 0, 0, 0, 1, 347, 347, 0, 0, 0, 348, 0, 0, 0, 0, 0, 0, 1, 347, 347, 348, 1, 348, 350, 348, 349, 1, 351, 349, 1, 352, 1, 353, 1, 349, 349, 1, 37, 37, 0, 0, 0, 38, 354, 354, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 355, 355, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 356, 356, 0, 0, 0, 0, 0, 0, 1, 357, 357, 0, 0, 0, 358, 0, 0, 0, 0, 0, 0, 1, 357, 357, 358, 1, 358, 360, 358, 359, 1, 361, 359, 1, 362, 1, 363, 1, 359, 359, 1, 37, 37, 0, 0, 0, 38, 364, 364, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 365, 365, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 366, 366, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 367, 367, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 368, 368, 0, 0, 0, 0, 0, 0, 1, 369, 369, 0, 0, 0, 370, 0, 0, 0, 0, 0, 0, 1, 369, 369, 370, 1, 370, 372, 370, 371, 1, 373, 371, 1, 374, 1, 375, 1, 371, 371, 1, 37, 37, 0, 0, 0, 38, 376, 376, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 377, 377, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 378, 378, 0, 0, 0, 0, 0, 0, 1, 379, 379, 0, 0, 0, 380, 0, 0, 0, 0, 0, 0, 1, 379, 379, 380, 1, 380, 382, 380, 381, 1, 383, 381, 1, 384, 1, 385, 1, 381, 381, 1, 37, 37, 0, 0, 0, 38, 386, 386, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 387, 387, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 388, 388, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 389, 389, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 390, 390, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 391, 391, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 392, 0, 38, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 393, 393, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 394, 394, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 395, 395, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 396, 396, 0, 0, 0, 0, 0, 0, 1, 397, 397, 0, 0, 0, 398, 0, 0, 0, 0, 0, 0, 1, 397, 397, 398, 1, 398, 400, 398, 399, 1, 401, 399, 1, 402, 1, 403, 1, 399, 399, 1, 37, 37, 0, 0, 0, 38, 404, 405, 404, 405, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 406, 406, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 407, 407, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 408, 408, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 409, 409, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 410, 410, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 411, 411, 0, 0, 0, 0, 0, 0, 1, 412, 412, 0, 0, 0, 413, 0, 414, 0, 0, 0, 0, 0, 1, 412, 412, 414, 1, 414, 416, 414, 415, 1, 417, 415, 1, 418, 1, 419, 1, 415, 415, 1, 37, 37, 0, 0, 0, 38, 420, 420, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 421, 421, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 422, 422, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 30, 30, 0, 0, 0, 0, 0, 0, 1, 423, 423, 0, 0, 0, 424, 0, 0, 0, 0, 0, 0, 1, 423, 423, 424, 1, 424, 426, 424, 425, 1, 427, 425, 1, 428, 1, 429, 1, 425, 425, 1, 37, 37, 0, 0, 0, 38, 430, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 431, 431, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 432, 432, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 433, 433, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 434, 434, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 435, 435, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 436, 0, 38, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 437, 437, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 438, 438, 0, 0, 0, 0, 0, 0, 1, 439, 439, 0, 0, 0, 440, 0, 0, 0, 0, 0, 0, 1, 439, 439, 440, 1, 440, 442, 440, 441, 1, 443, 441, 1, 444, 1, 445, 1, 441, 441, 1, 37, 37, 0, 0, 0, 38, 446, 446, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 447, 447, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 448, 448, 0, 0, 0, 0, 0, 0, 1, 449, 449, 0, 0, 0, 450, 0, 0, 0, 0, 0, 0, 1, 449, 449, 450, 1, 450, 452, 450, 451, 1, 453, 451, 1, 454, 1, 455, 1, 451, 451, 1, 37, 37, 0, 0, 0, 38, 456, 457, 456, 457, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 458, 458, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 459, 0, 38, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 460, 460, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 461, 461, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 462, 462, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 463, 463, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 464, 464, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 465, 465, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 466, 466, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 467, 467, 0, 0, 0, 0, 0, 0, 1, 468, 468, 0, 0, 0, 469, 0, 0, 0, 0, 0, 0, 1, 468, 468, 469, 1, 469, 471, 469, 470, 1, 472, 470, 1, 473, 1, 474, 1, 470, 470, 1, 37, 37, 0, 0, 0, 38, 475, 476, 475, 476, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 477, 477, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 478, 0, 38, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 479, 479, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 480, 480, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 481, 481, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 482, 482, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 483, 483, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 484, 484, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 485, 485, 0, 0, 0, 0, 0, 0, 1, 486, 486, 0, 0, 0, 487, 0, 0, 0, 0, 0, 0, 1, 486, 486, 487, 1, 487, 489, 487, 488, 1, 490, 488, 1, 491, 1, 492, 1, 488, 488, 1, 37, 37, 0, 0, 0, 493, 0, 38, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 494, 495, 494, 495, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 496, 496, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 497, 497, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 498, 498, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 499, 499, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 500, 500, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 501, 501, 0, 0, 0, 0, 0, 0, 1, 502, 502, 0, 0, 0, 503, 0, 0, 0, 0, 0, 0, 1, 502, 502, 503, 1, 503, 505, 503, 504, 1, 506, 504, 1, 507, 1, 508, 1, 504, 504, 1, 37, 37, 0, 0, 0, 38, 509, 509, 0, 0, 0, 0, 0, 0, 1, 510, 510, 0, 0, 0, 511, 0, 0, 0, 0, 0, 0, 1, 510, 510, 511, 1, 511, 513, 511, 512, 1, 514, 512, 1, 515, 1, 516, 1, 512, 512, 1, 357, 357, 0, 0, 0, 358, 517, 517, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 518, 518, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 519, 519, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 520, 520, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 521, 521, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 522, 522, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 523, 523, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 524, 524, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 525, 525, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 526, 526, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 527, 527, 0, 0, 0, 0, 0, 0, 1, 528, 528, 0, 0, 0, 529, 0, 0, 0, 0, 0, 0, 1, 528, 528, 529, 1, 529, 531, 529, 530, 1, 532, 530, 1, 533, 1, 534, 1, 530, 530, 1, 37, 37, 0, 0, 0, 535, 0, 38, 536, 537, 536, 537, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 538, 539, 540, 541, 542, 543, 544, 545, 538, 539, 540, 541, 542, 543, 544, 545, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 546, 547, 548, 546, 547, 548, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 549, 549, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 550, 550, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 551, 551, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 552, 552, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 553, 0, 38, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 554, 554, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 555, 555, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 556, 556, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 557, 557, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 558, 558, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 559, 559, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 560, 560, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 561, 0, 38, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 562, 562, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 563, 563, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 564, 564, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 565, 565, 0, 0, 0, 0, 0, 0, 1, 566, 566, 0, 0, 0, 567, 0, 0, 0, 0, 0, 0, 1, 566, 566, 567, 1, 567, 569, 567, 568, 1, 570, 568, 1, 571, 1, 572, 1, 568, 568, 1, 37, 37, 0, 0, 0, 38, 573, 573, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 574, 574, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 575, 575, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 576, 576, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 577, 0, 38, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 578, 578, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 579, 579, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 580, 580, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 581, 581, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 582, 582, 0, 0, 0, 0, 0, 0, 1, 583, 583, 0, 0, 0, 584, 0, 0, 0, 0, 0, 0, 1, 583, 583, 584, 1, 584, 586, 584, 585, 1, 587, 585, 1, 588, 1, 589, 1, 585, 585, 1, 37, 37, 0, 0, 0, 38, 590, 590, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 591, 592, 591, 592, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 593, 593, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 594, 594, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 595, 595, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 596, 596, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 597, 0, 38, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 598, 598, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 599, 599, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 600, 600, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 601, 601, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 602, 602, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 603, 603, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 604, 604, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 605, 605, 0, 0, 0, 0, 0, 0, 1, 606, 606, 0, 0, 0, 607, 0, 0, 0, 0, 0, 0, 1, 606, 606, 607, 1, 607, 609, 607, 608, 1, 610, 608, 1, 611, 1, 612, 1, 608, 608, 1, 37, 37, 0, 0, 0, 38, 613, 613, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 614, 614, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 615, 615, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 616, 616, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 617, 617, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 618, 618, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 619, 0, 38, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 620, 620, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 621, 621, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 622, 622, 0, 0, 0, 0, 0, 0, 1, 623, 623, 0, 0, 0, 624, 0, 0, 0, 0, 0, 0, 1, 623, 623, 624, 1, 624, 626, 624, 625, 1, 627, 625, 1, 628, 1, 629, 1, 625, 625, 1, 37, 37, 0, 0, 0, 38, 630, 631, 630, 631, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 632, 632, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 633, 633, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 634, 634, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 635, 635, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 636, 0, 38, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 637, 637, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 638, 638, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 639, 639, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 640, 640, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 641, 641, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 642, 0, 38, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 643, 643, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 644, 644, 0, 0, 0, 0, 0, 0, 1, 645, 645, 0, 0, 0, 646, 0, 0, 0, 0, 0, 0, 1, 645, 645, 646, 1, 646, 648, 646, 647, 1, 649, 647, 1, 650, 1, 651, 1, 647, 647, 1, 37, 37, 0, 0, 0, 38, 652, 652, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 653, 653, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 654, 654, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 655, 655, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 656, 656, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 657, 657, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 658, 0, 38, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 659, 660, 659, 660, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 661, 661, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 662, 662, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 663, 663, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 664, 664, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 665, 665, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 666, 666, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 667, 667, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 668, 0, 38, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 669, 669, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 670, 670, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 671, 671, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 672, 672, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 673, 673, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 674, 674, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 675, 675, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 676, 676, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 677, 677, 0, 0, 0, 0, 0, 0, 1, 678, 678, 0, 0, 0, 679, 0, 0, 0, 0, 0, 0, 1, 678, 678, 679, 1, 679, 681, 679, 680, 1, 682, 680, 1, 683, 1, 684, 1, 680, 680, 1, 37, 37, 0, 0, 0, 38, 685, 685, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 686, 686, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 687, 687, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 688, 688, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 689, 689, 0, 0, 0, 0, 0, 0, 1, 690, 690, 0, 0, 0, 691, 0, 0, 0, 0, 0, 0, 1, 690, 690, 691, 1, 691, 693, 691, 692, 1, 694, 692, 1, 695, 1, 696, 1, 692, 692, 1, 37, 37, 0, 0, 0, 38, 697, 697, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 698, 698, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 699, 0, 38, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 700, 701, 702, 703, 704, 700, 701, 702, 703, 704, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 705, 705, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 706, 706, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 707, 707, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 708, 708, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 709, 709, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 710, 710, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 711, 0, 38, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 712, 712, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 713, 713, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 714, 714, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 715, 715, 0, 0, 0, 0, 0, 0, 1, 716, 716, 0, 0, 0, 717, 0, 0, 0, 0, 0, 0, 1, 716, 716, 717, 1, 717, 719, 717, 718, 1, 720, 718, 1, 721, 1, 722, 1, 718, 718, 1, 37, 37, 0, 0, 0, 38, 723, 723, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 724, 724, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 725, 725, 0, 0, 0, 0, 0, 0, 1, 726, 726, 0, 0, 0, 727, 0, 0, 0, 0, 0, 0, 1, 726, 726, 727, 1, 727, 729, 727, 728, 1, 730, 728, 1, 731, 1, 732, 1, 728, 728, 1, 37, 37, 0, 0, 0, 38, 733, 733, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 734, 734, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 735, 735, 0, 0, 0, 0, 0, 0, 1, 736, 736, 0, 0, 0, 737, 0, 0, 0, 0, 0, 0, 1, 736, 736, 737, 1, 737, 739, 737, 738, 1, 740, 738, 1, 741, 1, 742, 1, 738, 738, 1, 37, 37, 0, 0, 0, 38, 743, 743, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 744, 744, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 745, 745, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 746, 746, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 747, 747, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 748, 748, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 749, 749, 0, 0, 0, 0, 0, 0, 1, 750, 750, 0, 0, 0, 751, 0, 0, 0, 0, 0, 0, 1, 750, 750, 751, 1, 751, 753, 751, 752, 1, 754, 752, 1, 755, 1, 756, 1, 752, 752, 1, 37, 37, 0, 0, 0, 38, 757, 757, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 758, 758, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 759, 759, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 760, 760, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 761, 0, 38, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 762, 762, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 763, 763, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 764, 764, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 765, 765, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 766, 766, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 767, 0, 38, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 768, 768, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 769, 769, 0, 0, 0, 0, 0, 0, 1, 770, 770, 0, 0, 0, 771, 0, 0, 0, 0, 0, 0, 1, 770, 770, 771, 1, 771, 773, 771, 772, 1, 774, 772, 1, 775, 1, 776, 1, 772, 772, 1, 37, 37, 0, 0, 0, 38, 777, 777, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 778, 778, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 779, 779, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 780, 780, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 781, 0, 38, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 782, 782, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 783, 783, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 784, 784, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 785, 785, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 786, 786, 0, 0, 0, 0, 0, 0, 1, 787, 787, 0, 0, 0, 788, 0, 0, 0, 0, 0, 0, 1, 787, 787, 788, 1, 788, 790, 788, 789, 1, 791, 789, 1, 792, 1, 793, 1, 789, 789, 1, 37, 37, 0, 0, 0, 38, 794, 794, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 795, 795, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 796, 796, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 797, 797, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 798, 0, 38, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 799, 799, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 800, 800, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 801, 801, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 802, 802, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 803, 803, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 804, 804, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 805, 805, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 806, 806, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 807, 807, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 808, 808, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 809, 809, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 810, 810, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 811, 811, 0, 0, 0, 0, 0, 0, 1, 812, 812, 0, 0, 0, 813, 0, 0, 0, 0, 0, 0, 1, 812, 812, 813, 1, 813, 815, 813, 814, 1, 816, 814, 1, 817, 1, 818, 1, 814, 814, 1, 37, 37, 0, 0, 0, 38, 819, 819, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 820, 821, 820, 821, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 822, 822, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 823, 823, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 824, 824, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 825, 825, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 826, 826, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 827, 827, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 828, 0, 38, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 829, 829, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 830, 830, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 831, 831, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 832, 832, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 833, 833, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 834, 834, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 835, 835, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 836, 836, 0, 0, 0, 0, 0, 0, 1, 837, 837, 0, 0, 0, 838, 0, 0, 0, 0, 0, 0, 1, 837, 837, 838, 1, 838, 840, 838, 839, 1, 841, 839, 1, 842, 1, 843, 1, 839, 839, 1, 37, 37, 0, 0, 0, 38, 844, 844, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 845, 845, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 846, 846, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 847, 847, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 848, 0, 38, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 849, 849, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 850, 850, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 851, 851, 0, 0, 0, 0, 0, 0, 1, 852, 852, 0, 0, 0, 853, 0, 0, 0, 0, 0, 0, 1, 852, 852, 853, 1, 853, 855, 853, 854, 1, 856, 854, 1, 857, 1, 858, 1, 854, 854, 1, 37, 37, 0, 0, 0, 38, 859, 859, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 860, 860, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 861, 861, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 862, 0, 38, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 863, 863, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 864, 864, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 865, 865, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 866, 866, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 867, 867, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 868, 868, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 869, 869, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 870, 870, 0, 0, 0, 0, 0, 0, 1, 871, 871, 0, 0, 0, 872, 0, 0, 0, 0, 0, 0, 1, 871, 871, 872, 1, 872, 874, 872, 873, 1, 875, 873, 1, 876, 1, 877, 1, 873, 873, 1, 37, 37, 0, 0, 0, 38, 878, 878, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 879, 879, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 880, 880, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 881, 881, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 882, 882, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 883, 883, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 884, 0, 38, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 885, 885, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 886, 886, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 887, 887, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 888, 888, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 889, 889, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 890, 890, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 891, 891, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 892, 0, 38, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 893, 893, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 894, 894, 0, 0, 0, 0, 0, 0, 1, 895, 895, 0, 0, 0, 896, 0, 0, 0, 0, 0, 0, 1, 895, 895, 896, 1, 896, 898, 896, 897, 1, 899, 897, 1, 900, 1, 901, 1, 897, 897, 1, 37, 37, 0, 0, 0, 38, 902, 902, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 903, 903, 0, 0, 0, 0, 0, 0, 1, 904, 904, 0, 0, 0, 905, 0, 0, 0, 0, 0, 0, 1, 904, 904, 905, 1, 905, 907, 905, 906, 1, 908, 906, 1, 909, 1, 910, 1, 906, 906, 1, 37, 37, 0, 0, 0, 38, 911, 912, 911, 912, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 913, 914, 913, 914, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 915, 915, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 916, 916, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 917, 917, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 918, 918, 0, 0, 0, 0, 0, 0, 1, 919, 919, 0, 0, 0, 920, 0, 0, 0, 0, 0, 0, 1, 919, 919, 920, 1, 920, 922, 920, 921, 1, 923, 921, 1, 924, 1, 925, 1, 921, 921, 1, 37, 37, 0, 0, 0, 38, 926, 926, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 927, 927, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 928, 928, 0, 0, 0, 0, 0, 0, 1, 929, 929, 0, 0, 0, 930, 0, 0, 0, 0, 0, 0, 1, 929, 929, 930, 1, 930, 932, 930, 931, 1, 933, 931, 1, 934, 1, 935, 1, 931, 931, 1, 37, 37, 0, 0, 0, 38, 936, 936, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 937, 937, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 938, 0, 38, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 939, 940, 939, 940, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 941, 941, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 942, 942, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 943, 943, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 944, 945, 944, 945, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 946, 946, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 947, 947, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 948, 948, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 949, 949, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 950, 950, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 951, 951, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 952, 952, 0, 0, 0, 0, 0, 0, 1, 953, 953, 0, 0, 0, 954, 0, 0, 0, 0, 0, 0, 1, 953, 953, 954, 1, 954, 956, 954, 955, 1, 957, 955, 1, 958, 957, 955, 1, 959, 1, 955, 955, 1, 37, 37, 0, 0, 0, 38, 960, 960, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 961, 961, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 962, 962, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 963, 963, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 964, 964, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 965, 965, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 966, 966, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 967, 967, 0, 0, 0, 0, 0, 0, 1, 968, 968, 0, 0, 0, 969, 0, 0, 0, 0, 0, 0, 1, 968, 968, 969, 1, 969, 971, 969, 970, 1, 972, 970, 1, 973, 1, 974, 1, 970, 970, 1, 37, 37, 0, 0, 0, 38, 975, 975, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 976, 976, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 977, 977, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 978, 978, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 979, 979, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 980, 980, 0, 0, 0, 0, 0, 0, 1, 981, 981, 0, 0, 0, 982, 0, 0, 0, 0, 0, 0, 1, 981, 981, 982, 1, 982, 984, 982, 983, 1, 985, 983, 1, 986, 1, 987, 1, 983, 983, 1, 37, 37, 0, 0, 0, 38, 988, 989, 990, 991, 988, 989, 990, 991, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 992, 992, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 993, 993, 0, 0, 0, 0, 0, 0, 1, 994, 994, 0, 0, 0, 995, 0, 0, 0, 0, 0, 0, 1, 994, 994, 995, 1, 995, 997, 995, 996, 1, 998, 996, 1, 999, 1, 1000, 1, 996, 996, 1, 37, 37, 0, 0, 0, 38, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1009, 1009, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1010, 1010, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1011, 1011, 0, 0, 0, 0, 0, 0, 1, 1012, 1012, 0, 0, 0, 1013, 0, 0, 0, 0, 0, 0, 1, 1012, 1012, 1013, 1, 1013, 1015, 1013, 1014, 1, 1016, 1014, 1, 1017, 1, 1018, 1, 1014, 1014, 1, 37, 37, 0, 0, 0, 38, 1019, 1019, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1020, 1020, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1021, 1021, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 1022, 0, 38, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1023, 1023, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1024, 1024, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1025, 1025, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1026, 1026, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1027, 1027, 0, 0, 0, 0, 0, 0, 1, 1028, 1028, 0, 0, 0, 1029, 0, 0, 0, 0, 0, 0, 1, 1028, 1028, 1029, 1, 1029, 1031, 1029, 1030, 1, 1032, 1030, 1, 1033, 1, 1034, 1, 1030, 1030, 1, 37, 37, 0, 0, 0, 38, 1035, 1035, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1036, 1036, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 1037, 0, 38, 1038, 1038, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1039, 1040, 1039, 1040, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1041, 1041, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1042, 1042, 0, 0, 0, 0, 0, 0, 1, 1043, 1043, 0, 0, 0, 1044, 0, 0, 0, 0, 0, 0, 1, 1043, 1043, 1044, 1, 1044, 1046, 1044, 1045, 1, 1047, 1045, 1, 1048, 1, 1049, 1, 1045, 1045, 1, 37, 37, 0, 0, 0, 38, 1050, 1050, 0, 0, 0, 0, 0, 0, 1, 1051, 1051, 0, 0, 0, 1052, 0, 0, 0, 0, 0, 0, 1, 1051, 1051, 1052, 1, 1052, 1054, 1052, 1053, 1, 1055, 1053, 1, 1056, 1, 1057, 1, 1053, 1053, 1, 37, 37, 0, 0, 0, 38, 1058, 1058, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1059, 1059, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 1060, 0, 38, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1061, 1061, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 20, 20, 0, 0, 0, 0, 0, 0, 1, 1062, 1062, 0, 0, 0, 1063, 0, 0, 0, 0, 0, 0, 1, 1062, 1062, 1063, 1, 1063, 1065, 1063, 1064, 1, 1066, 1064, 1, 1067, 1, 1068, 1, 1064, 1064, 1, 37, 37, 0, 0, 0, 38, 1069, 1069, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1070, 1070, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1071, 1071, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 1072, 0, 38, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1073, 1073, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1074, 1074, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1075, 1075, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1076, 1076, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1077, 1077, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1078, 1078, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1079, 1079, 0, 0, 0, 0, 0, 0, 1, 1080, 1080, 0, 0, 0, 1081, 0, 0, 0, 0, 0, 0, 1, 1080, 1080, 1081, 1, 1081, 1083, 1081, 1082, 1, 1084, 1082, 1, 1085, 1, 1086, 1, 1082, 1082, 1, 37, 37, 0, 0, 0, 38, 1087, 1087, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1088, 1089, 1088, 1089, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1090, 1090, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1091, 1091, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1092, 1092, 0, 0, 0, 0, 0, 0, 1, 1093, 1093, 0, 0, 0, 1094, 0, 0, 0, 0, 0, 0, 1, 1093, 1093, 1094, 1, 1094, 1096, 1094, 1095, 1, 1097, 1095, 1, 1098, 1, 1099, 1, 1095, 1095, 1, 37, 37, 0, 0, 0, 1100, 0, 38, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1101, 1101, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1102, 1102, 0, 0, 0, 0, 0, 0, 1, 1103, 1103, 0, 0, 0, 1104, 0, 0, 0, 0, 0, 0, 1, 1103, 1103, 1104, 1, 1104, 1106, 1104, 1105, 1, 1107, 1105, 1, 1108, 1, 1109, 1, 1105, 1105, 1, 37, 37, 0, 0, 0, 38, 1110, 1110, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1111, 1112, 1111, 1112, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1113, 1113, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1114, 1114, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 1115, 0, 38, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1116, 1116, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1117, 1117, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1118, 1118, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1119, 1119, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1120, 1120, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1121, 1121, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1122, 1122, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1123, 1123, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1124, 1124, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1125, 1125, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1126, 1126, 0, 0, 0, 0, 0, 0, 1, 1127, 1127, 0, 0, 0, 1128, 0, 0, 0, 0, 0, 0, 1, 1127, 1127, 1128, 1, 1128, 1130, 1128, 1129, 1, 1131, 1129, 1, 1132, 1, 1133, 1, 1129, 1129, 1, 37, 37, 0, 0, 0, 38, 1134, 1134, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1135, 1135, 0, 0, 0, 0, 0, 0, 1, 1136, 1136, 0, 0, 0, 1137, 0, 0, 0, 0, 0, 0, 1, 1136, 1136, 1137, 1, 1137, 1139, 1137, 1138, 1, 1140, 1138, 1, 1141, 1, 1142, 1, 1138, 1138, 1, 37, 37, 0, 0, 0, 38, 1143, 1143, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1144, 1144, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1145, 1145, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1146, 1146, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1147, 1147, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 1148, 0, 38, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1149, 1149, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1150, 1150, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1151, 1151, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1152, 1152, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1153, 1153, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1154, 1154, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1155, 1155, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1156, 1156, 0, 0, 0, 0, 0, 0, 1, 1157, 1157, 0, 0, 0, 1158, 0, 0, 0, 0, 0, 0, 1, 1157, 1157, 1158, 1, 1158, 1160, 1158, 1159, 1, 1161, 1159, 1, 1162, 1, 1163, 1, 1159, 1159, 1, 37, 37, 0, 0, 0, 38, 1164, 1164, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1165, 1165, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 1166, 0, 38, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1167, 1167, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1168, 1168, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1169, 1169, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1170, 1170, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1171, 1171, 0, 0, 0, 0, 0, 0, 1, 1172, 1172, 0, 0, 0, 1173, 0, 0, 0, 0, 0, 0, 1, 1172, 1172, 1173, 1, 1173, 1175, 1173, 1174, 1, 1176, 1174, 1, 1177, 1, 1178, 1, 1174, 1174, 1, 37, 37, 0, 0, 0, 38, 1179, 1179, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1180, 1180, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1181, 1181, 0, 0, 0, 0, 0, 0, 1, 1182, 1182, 0, 0, 0, 1183, 0, 0, 0, 0, 0, 0, 1, 1182, 1182, 1183, 1, 1183, 1185, 1183, 1184, 1, 1186, 1184, 1, 1187, 1, 1188, 1, 1184, 1184, 1, 37, 37, 0, 0, 0, 38, 1189, 1189, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1190, 1190, 0, 0, 0, 0, 0, 0, 1, 1191, 1191, 0, 0, 0, 1192, 0, 0, 0, 0, 0, 0, 1, 1191, 1191, 1192, 1, 1192, 1194, 1192, 1193, 1, 1195, 1193, 1, 1196, 1, 1197, 1, 1193, 1193, 1, 1198, 1198, 0, 0, 0, 1199, 1200, 1201, 1202, 1200, 1201, 1202, 0, 0, 0, 0, 0, 0, 1, 1198, 1198, 1199, 1, 1199, 1204, 1199, 1203, 1, 1205, 1203, 1, 1206, 1, 1207, 1, 1203, 1203, 1, 37, 37, 0, 0, 0, 38, 1208, 1209, 1210, 1208, 1209, 1210, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1211, 1211, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1212, 1212, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1213, 1213, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1214, 1214, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1215, 1215, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 1216, 0, 38, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1217, 1218, 1219, 1217, 1218, 1219, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1220, 1220, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1221, 1221, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1222, 1222, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1223, 1223, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1224, 1224, 0, 0, 0, 0, 0, 0, 1, 1225, 1225, 0, 0, 0, 1226, 0, 0, 0, 0, 0, 0, 1, 1225, 1225, 1226, 1, 1226, 1228, 1226, 1227, 1, 1229, 1227, 1, 1230, 1, 1231, 1, 1227, 1227, 1, 37, 37, 0, 0, 0, 38, 1232, 1232, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1233, 1233, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1234, 1234, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1235, 1235, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1236, 1236, 0, 0, 0, 0, 0, 0, 1, 1237, 1237, 0, 0, 0, 1238, 0, 0, 0, 0, 0, 0, 1, 1237, 1237, 1238, 1, 1238, 1240, 1238, 1239, 1, 1241, 1239, 1, 1242, 1, 1243, 1, 1239, 1239, 1, 37, 37, 0, 0, 0, 38, 1244, 1244, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1245, 1245, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1246, 1246, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1247, 1247, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1248, 1248, 0, 0, 0, 0, 0, 0, 1, 1249, 1249, 0, 0, 0, 1250, 0, 0, 0, 0, 0, 0, 1, 1249, 1249, 1250, 1, 1250, 1252, 1250, 1251, 1, 1253, 1251, 1, 1254, 1, 1255, 1, 1251, 1251, 1, 37, 37, 0, 0, 0, 38, 1256, 1256, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1257, 1258, 1257, 1258, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1259, 1259, 0, 0, 0, 0, 0, 0, 1, 1260, 1260, 0, 0, 0, 1261, 0, 0, 0, 0, 0, 0, 1, 1260, 1260, 1261, 1, 1261, 1263, 1261, 1262, 1, 1264, 1262, 1, 1265, 1, 1266, 1, 1262, 1262, 1, 37, 37, 0, 0, 0, 38, 1267, 1267, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1268, 1268, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 1269, 0, 38, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1270, 1270, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1271, 1271, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1272, 1272, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1273, 1273, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1274, 1274, 0, 0, 0, 0, 0, 0, 1, 1275, 1275, 0, 0, 0, 1276, 0, 0, 0, 0, 0, 0, 1, 1275, 1275, 1276, 1, 1276, 1278, 1276, 1277, 1, 1279, 1277, 1, 1280, 1, 1281, 1, 1277, 1277, 1, 37, 37, 0, 0, 0, 38, 1282, 1282, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1283, 1283, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1284, 1284, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1285, 1285, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 1286, 0, 38, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1287, 1287, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1288, 1288, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1289, 1289, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1290, 1290, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1291, 1291, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1292, 1292, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 35, 35, 0, 0, 0, 0, 0, 0, 1, 1293, 1293, 0, 0, 0, 1294, 0, 0, 0, 0, 0, 0, 1, 1293, 1293, 1294, 1, 1294, 1296, 1294, 1295, 1, 1297, 1295, 1, 1298, 1, 1299, 1, 1295, 1295, 1, 37, 37, 0, 0, 0, 38, 1300, 1300, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 1301, 0, 38, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1302, 1303, 1302, 1303, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1304, 1304, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1305, 1305, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1306, 1306, 0, 0, 0, 0, 0, 0, 1, 1307, 1307, 0, 0, 0, 1308, 0, 0, 0, 0, 0, 0, 1, 1307, 1307, 1308, 1, 1308, 1310, 1308, 1309, 1, 1311, 1309, 1, 1312, 1, 1313, 1, 1309, 1309, 1, 37, 37, 0, 0, 0, 38, 1314, 1314, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 1315, 0, 38, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1316, 1316, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1317, 1317, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1318, 1318, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1319, 1319, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1320, 1320, 0, 0, 0, 0, 0, 0, 1, 1321, 1321, 0, 0, 0, 1322, 0, 0, 0, 0, 0, 0, 1, 1321, 1321, 1322, 1, 1322, 1324, 1322, 1323, 1, 1325, 1323, 1, 1326, 1, 1327, 1, 1323, 1323, 1, 37, 37, 0, 0, 0, 38, 1328, 1329, 1328, 1329, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1330, 1331, 1330, 1331, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1332, 1332, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1333, 1333, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1334, 1334, 0, 0, 0, 0, 0, 0, 1, 1198, 1198, 0, 0, 0, 1199, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1335, 1335, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1336, 1336, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1337, 1337, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1338, 1338, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1339, 1339, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1340, 1340, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1341, 1341, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1342, 1342, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 1343, 0, 38, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1344, 1344, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1345, 1345, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1346, 1346, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1347, 1347, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1348, 1348, 0, 0, 0, 0, 0, 0, 1, 1349, 1349, 0, 0, 0, 1350, 0, 0, 0, 0, 0, 0, 1, 1349, 1349, 1350, 1, 1350, 1352, 1350, 1351, 1, 1353, 1351, 1, 1354, 1, 1355, 1, 1351, 1351, 1, 37, 37, 0, 0, 0, 38, 1356, 1356, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1357, 1357, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1358, 1358, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1359, 1359, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1360, 1360, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 27, 27, 0, 0, 0, 0, 0, 0, 1, 1361, 1361, 0, 0, 0, 1362, 0, 0, 0, 0, 0, 0, 1, 1361, 1361, 1362, 1, 1362, 1364, 1362, 1363, 1, 1365, 1363, 1, 1366, 1, 1367, 1, 1363, 1363, 1, 37, 37, 0, 0, 0, 38, 1368, 1369, 1370, 1368, 1369, 1370, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1371, 1371, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1372, 1372, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1373, 1373, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1374, 1374, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 1375, 0, 38, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1376, 1376, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1377, 1377, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1378, 1378, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1379, 1379, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1380, 1380, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1381, 1381, 0, 0, 0, 0, 0, 0, 1, 1382, 1382, 0, 0, 0, 1383, 0, 0, 0, 0, 0, 0, 1, 1382, 1382, 1383, 1, 1383, 1385, 1383, 1384, 1, 1386, 1384, 1, 1387, 1, 1388, 1, 1384, 1384, 1, 37, 37, 0, 0, 0, 38, 1389, 1389, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1390, 1390, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1391, 1391, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1392, 1392, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1393, 1393, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1394, 1394, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1395, 1395, 0, 0, 0, 0, 0, 0, 1, 1396, 1396, 0, 0, 0, 1397, 0, 0, 0, 0, 0, 0, 1, 1396, 1396, 1397, 1, 1397, 1399, 1397, 1398, 1, 1400, 1398, 1, 1401, 1, 1402, 1, 1398, 1398, 1, 1403, 1403, 0, 0, 0, 1404, 0, 0, 0, 0, 0, 0, 1, 1403, 1403, 1404, 1, 1404, 1406, 1404, 1405, 1, 1407, 1405, 1, 1408, 1, 1409, 1, 1405, 1405, 1, 37, 37, 0, 0, 0, 38, 1410, 1411, 1410, 1411, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1412, 1412, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1413, 1413, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1414, 1414, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1415, 1415, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1416, 1416, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1417, 1417, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1418, 1418, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1419, 1419, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1420, 1420, 0, 0, 0, 0, 0, 0, 1, 1421, 1421, 0, 0, 0, 1422, 0, 0, 0, 0, 0, 0, 1, 1421, 1421, 1422, 1, 1422, 1424, 1422, 1423, 1, 1425, 1423, 1, 1426, 1, 1427, 1, 1423, 1423, 1, 37, 37, 0, 0, 0, 38, 1428, 1428, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1429, 1429, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 1430, 0, 38, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1431, 1431, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1432, 1432, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1433, 1433, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1434, 1434, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1435, 1435, 0, 0, 0, 0, 0, 0, 1, 1436, 1436, 0, 0, 0, 1437, 0, 0, 0, 0, 0, 0, 1, 1436, 1436, 1437, 1, 1437, 1439, 1437, 1438, 1, 1440, 1438, 1, 1441, 1, 1442, 1, 1438, 1438, 1, 37, 37, 0, 0, 0, 38, 1443, 1443, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1444, 1444, 0, 0, 0, 0, 0, 0, 1, 1445, 1445, 0, 0, 0, 1446, 0, 0, 0, 0, 0, 0, 1, 1445, 1445, 1446, 1, 1446, 1448, 1446, 1447, 1, 1449, 1447, 1, 1450, 1, 1451, 1, 1447, 1447, 1, 37, 37, 0, 0, 0, 38, 1452, 1453, 1452, 1453, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1454, 1454, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1455, 1455, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1456, 1456, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1457, 1457, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1458, 1458, 0, 0, 0, 0, 0, 0, 1, 1459, 1459, 0, 0, 0, 1460, 0, 0, 0, 0, 0, 0, 1, 1459, 1459, 1460, 1, 1460, 1462, 1460, 1461, 1, 1463, 1461, 1, 1464, 1, 1465, 1, 1461, 1461, 1, 37, 37, 0, 0, 0, 38, 1466, 1466, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 1467, 0, 38, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1468, 1468, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1469, 1469, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1470, 1470, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1471, 1471, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1472, 1472, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1473, 1473, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1474, 1474, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1475, 1475, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1476, 1476, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1477, 1477, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1478, 1478, 0, 0, 0, 0, 0, 0, 1, 37, 37, 0, 0, 0, 38, 1479, 1479, 0, 0, 0, 0, 0, 0, 1, 1480, 1480, 0, 0, 0, 1481, 0, 0, 0, 0, 0, 0, 1, 1480, 1480, 1481, 1, 1481, 1483, 1481, 1482, 1, 1484, 1482, 1, 1485, 1484, 1482, 1, 1486, 1, 1482, 1482, 1, 69, 69, 0, 0, 0, 70, 44, 45, 46, 44, 45, 46, 0, 0, 0, 0, 0, 0, 1, 310, 310, 0, 0, 0, 311, 206, 207, 208, 206, 207, 208, 0, 0, 0, 0, 0, 0, 1, 1127, 1127, 0, 0, 0, 1128, 326, 326, 0, 0, 0, 0, 0, 0, 1, 275, 275, 0, 0, 0, 276, 336, 337, 338, 336, 337, 338, 0, 0, 0, 0, 0, 0, 1, 379, 379, 0, 0, 0, 380, 376, 376, 0, 0, 0, 0, 0, 0, 1, 215, 215, 0, 0, 0, 216, 404, 405, 404, 405, 0, 0, 0, 0, 0, 0, 1, 1080, 1080, 0, 0, 0, 1081, 446, 446, 0, 0, 0, 0, 0, 0, 1, 237, 237, 0, 0, 0, 238, 456, 457, 456, 457, 0, 0, 0, 0, 0, 0, 1, 1051, 1051, 0, 0, 0, 1052, 988, 989, 990, 991, 988, 989, 990, 991, 0, 0, 0, 0, 0, 0, 1, 1403, 1403, 0, 0, 0, 1404, 1368, 1369, 1370, 1368, 1369, 1370, 0, 0, 0, 0, 0, 0, 1, 159, 159, 0, 0, 0, 160, 1410, 1411, 1410, 1411, 0, 0, 0, 0, 0, 0, 1, 1445, 1445, 0, 0, 0, 1446, 1443, 1443, 0, 0, 0, 0, 0, 0, 1, 412, 412, 0, 0, 0, 414, 0, 0, 0, 0, 0, 0, 1, 1, 957, 955, 1, 1484, 1482, 1, 0]; _tsip_machine_parser_headers_trans_targs = [2, 0, 9, 162, 275, 285, 323, 333, 351, 392, 402, 460, 478, 908, 1105, 1267, 1307, 1339, 1348, 1382, 971, 1383, 1384, 1385, 1386, 1387, 1388, 1260, 249, 1389, 369, 1390, 1391, 1392, 1393, 1193, 1394, 3, 4, 5, 7, 6, 1395, 8, 10, 86, 123, 11, 12, 13, 14, 15, 21, 16, 17, 19, 18, 1395, 20, 22, 35, 49, 63, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 32, 1395, 34, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 47, 46, 1395, 48, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 61, 60, 1395, 62, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 84, 83, 1395, 85, 87, 101, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 99, 98, 1395, 100, 102, 103, 104, 110, 105, 106, 108, 107, 1395, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 121, 120, 1395, 122, 124, 125, 126, 147, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 145, 144, 1395, 146, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 160, 159, 1395, 161, 163, 184, 266, 164, 165, 166, 167, 168, 175, 169, 170, 171, 173, 172, 1395, 174, 176, 177, 178, 179, 180, 182, 181, 1395, 183, 185, 186, 187, 196, 188, 189, 190, 191, 192, 194, 193, 1395, 195, 197, 198, 199, 200, 217, 231, 256, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 215, 214, 1395, 216, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 229, 228, 1395, 230, 232, 245, 233, 234, 235, 236, 237, 238, 239, 240, 241, 243, 242, 1395, 244, 246, 247, 248, 250, 251, 252, 254, 253, 1395, 255, 257, 258, 259, 260, 261, 262, 264, 263, 1395, 265, 267, 268, 269, 270, 271, 273, 272, 1395, 274, 276, 277, 278, 279, 280, 281, 283, 282, 1395, 284, 286, 301, 311, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 299, 298, 1395, 300, 302, 303, 304, 305, 306, 307, 309, 308, 1395, 310, 312, 313, 314, 315, 316, 317, 318, 319, 321, 320, 1395, 322, 324, 325, 326, 327, 328, 329, 331, 330, 1395, 332, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 349, 348, 1395, 350, 352, 376, 353, 354, 355, 356, 357, 358, 359, 365, 360, 361, 363, 362, 1395, 364, 366, 367, 368, 370, 371, 372, 374, 373, 1395, 375, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 390, 389, 1395, 391, 393, 394, 395, 396, 397, 398, 400, 399, 1395, 401, 403, 420, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 418, 417, 1395, 419, 421, 437, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 435, 434, 1395, 436, 438, 439, 452, 440, 441, 442, 443, 444, 445, 446, 447, 448, 450, 449, 1395, 451, 453, 454, 455, 456, 458, 457, 1395, 459, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 476, 475, 1395, 477, 479, 826, 835, 480, 561, 626, 702, 719, 744, 783, 802, 481, 505, 522, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 503, 502, 1395, 504, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 520, 519, 1395, 521, 523, 524, 544, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 542, 541, 1395, 543, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 559, 558, 1395, 560, 562, 582, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 580, 579, 1395, 581, 583, 584, 585, 586, 587, 588, 589, 590, 614, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 612, 611, 1395, 613, 615, 616, 617, 618, 619, 620, 621, 622, 624, 623, 1395, 625, 627, 628, 629, 630, 648, 658, 668, 682, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 646, 645, 1395, 647, 649, 650, 651, 652, 653, 654, 656, 655, 1395, 657, 659, 660, 661, 662, 663, 664, 666, 665, 1395, 667, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 680, 679, 1395, 681, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 700, 699, 1395, 701, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 717, 716, 1395, 718, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 742, 741, 1395, 743, 745, 746, 768, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 766, 765, 1395, 767, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 781, 780, 1395, 782, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 800, 799, 1395, 801, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 824, 823, 1395, 825, 827, 828, 829, 830, 831, 833, 832, 1395, 834, 836, 858, 837, 848, 838, 839, 840, 841, 842, 843, 844, 846, 845, 1395, 847, 849, 850, 851, 852, 853, 854, 856, 855, 1395, 857, 859, 860, 861, 862, 895, 863, 864, 865, 866, 880, 867, 868, 869, 870, 871, 872, 873, 874, 875, 876, 878, 877, 1396, 879, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, 893, 892, 1395, 894, 896, 897, 898, 899, 900, 901, 902, 903, 904, 906, 905, 1395, 907, 909, 918, 1086, 1096, 910, 911, 912, 913, 914, 916, 915, 1395, 917, 919, 929, 945, 978, 996, 1018, 1050, 1071, 920, 921, 922, 923, 924, 925, 927, 926, 1395, 928, 930, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 943, 942, 1395, 944, 946, 947, 948, 966, 949, 958, 950, 951, 952, 953, 954, 956, 955, 1395, 957, 959, 960, 961, 962, 964, 963, 1395, 965, 967, 968, 969, 970, 972, 973, 974, 976, 975, 1395, 977, 979, 980, 981, 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, 994, 993, 1395, 995, 997, 998, 1008, 999, 1000, 1001, 1002, 1003, 1004, 1006, 1005, 1395, 1007, 1009, 1010, 1011, 1012, 1013, 1014, 1016, 1015, 1395, 1017, 1019, 1020, 1041, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1039, 1038, 1395, 1040, 1042, 1043, 1044, 1045, 1046, 1048, 1047, 1395, 1049, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1069, 1068, 1395, 1070, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1084, 1083, 1395, 1085, 1087, 1088, 1089, 1090, 1091, 1092, 1094, 1093, 1395, 1095, 1097, 1098, 1099, 1100, 1101, 1103, 1102, 1395, 1104, 1106, 1107, 1112, 1200, 1227, 1108, 1110, 1109, 1395, 1111, 1113, 1156, 1181, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1132, 1144, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1130, 1129, 1395, 1131, 1133, 1134, 1135, 1136, 1137, 1138, 1139, 1140, 1142, 1141, 1395, 1143, 1145, 1146, 1147, 1148, 1149, 1150, 1151, 1152, 1154, 1153, 1395, 1155, 1157, 1158, 1166, 1159, 1160, 1161, 1162, 1164, 1163, 1395, 1165, 1167, 1168, 1169, 1170, 1171, 1172, 1173, 1174, 1175, 1176, 1177, 1179, 1178, 1395, 1180, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 1189, 1190, 1191, 1192, 1194, 1195, 1196, 1198, 1197, 1395, 1199, 1201, 1202, 1203, 1213, 1204, 1205, 1206, 1207, 1208, 1209, 1211, 1210, 1395, 1212, 1214, 1215, 1216, 1217, 1218, 1219, 1220, 1221, 1222, 1223, 1225, 1224, 1395, 1226, 1228, 1254, 1229, 1233, 1230, 1231, 1232, 1234, 1235, 1236, 1237, 1238, 1239, 1240, 1241, 1242, 1243, 1244, 1245, 1246, 1247, 1248, 1249, 1250, 1252, 1251, 1395, 1253, 1255, 1256, 1257, 1258, 1259, 1261, 1262, 1263, 1265, 1264, 1395, 1266, 1268, 1286, 1300, 1269, 1270, 1271, 1272, 1273, 1274, 1275, 1276, 1277, 1278, 1279, 1280, 1281, 1282, 1284, 1283, 1395, 1285, 1287, 1288, 1289, 1290, 1291, 1292, 1293, 1294, 1295, 1296, 1298, 1297, 1395, 1299, 1301, 1302, 1303, 1305, 1304, 1395, 1306, 1308, 1324, 1309, 1310, 1311, 1312, 1313, 1314, 1315, 1316, 1317, 1318, 1319, 1320, 1322, 1321, 1395, 1323, 1325, 1326, 1327, 1328, 1329, 1330, 1331, 1332, 1333, 1334, 1335, 1337, 1336, 1395, 1338, 1340, 1341, 1342, 1343, 1344, 1346, 1345, 1395, 1347, 1349, 1361, 1350, 1351, 1352, 1353, 1354, 1355, 1356, 1357, 1359, 1358, 1395, 1360, 1362, 1363, 1364, 1365, 1366, 1367, 1368, 1369, 1370, 1371, 1372, 1373, 1374, 1375, 1376, 1377, 1378, 1380, 1379, 1397, 1381]; _tsip_machine_parser_headers_trans_actions = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 185, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 0, 0, 0, 0, 0, 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 0, 0, 0, 0, 0, 0, 0, 0, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 81, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 89, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 93, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 95, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 97, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 103, 0, 0, 0, 0, 0, 0, 0, 0, 105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 107, 0, 0, 0, 0, 0, 0, 0, 0, 0, 109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 113, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 117, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 123, 0, 0, 0, 0, 0, 0, 0, 125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 129, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 131, 0, 0, 0, 0, 0, 0, 0, 0, 0, 133, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 135, 0, 0, 0, 0, 0, 0, 0, 0, 137, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 139, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 141, 0, 0, 0, 0, 0, 0, 0, 0, 0, 143, 0, 0, 0, 0, 0, 0, 0, 0, 145, 0, 0, 0, 0, 0, 0, 0, 0, 0, 163, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 147, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 151, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 153, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 155, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 157, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 159, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 161, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 165, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 167, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 169, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 171, 0, 0, 0, 0, 0, 0, 173, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 175, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 177, 0, 0, 0, 0, 0, 0, 0, 0, 179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 181, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, 0]; tsip_machine_parser_headers_start = 1; tsip_machine_parser_headers_first_final = 1395; tsip_machine_parser_headers_error = 0; tsip_machine_parser_headers_en_main = 1; function tsip_header_parse(w, u) { var f = 0; var k = w.i_tag_start; var y = w.i_tag_end; var h = y; var z = w.o_data; var o = w.s_data.substring(w.i_tag_start, w.i_tag_start + (w.i_tag_end - w.i_tag_start)); f = tsip_machine_parser_headers_start; var g, q, c, e, d, t, l; var r, j, b, s, x; var v; g = q = c = t = l = null; r = 0; j = 10; b = 15; s = 20; x = 30; v = 40; while (true) { _trigger_goto = false; if (r <= 0) { if (k == y) { r = x; continue } if (f == 0) { r = v; continue } } if (r <= j) { c = _tsip_machine_parser_headers_key_offsets[f]; q = _tsip_machine_parser_headers_index_offsets[f]; g = _tsip_machine_parser_headers_single_lengths[f]; _break_match = false; do { if (g > 0) { _lower = c; _upper = c + g - 1; while (true) { if (_upper < _lower) { break } _mid = _lower + ((_upper - _lower) >> 1); if (z[k] < _tsip_machine_parser_headers_trans_keys[_mid]) { _upper = _mid - 1 } else { if (z[k] > _tsip_machine_parser_headers_trans_keys[_mid]) { _lower = _mid + 1 } else { q += (_mid - c); _break_match = true; break } } } if (_break_match) { break } c += g; q += g } g = _tsip_machine_parser_headers_range_lengths[f]; if (g > 0) { _lower = c; _upper = c + (g << 1) - 2; while (true) { if (_upper < _lower) { break } _mid = _lower + (((_upper - _lower) >> 1) & ~1); if (z[k] < _tsip_machine_parser_headers_trans_keys[_mid]) { _upper = _mid - 2 } else { if (z[k] > _tsip_machine_parser_headers_trans_keys[_mid + 1]) { _lower = _mid + 2 } else { q += ((_mid - c) >> 1); _break_match = true; break } } } if (_break_match) { break } q += g } } while (false); q = _tsip_machine_parser_headers_indicies[q]; f = _tsip_machine_parser_headers_trans_targs[q]; if (_tsip_machine_parser_headers_trans_actions[q] != 0) { t = _tsip_machine_parser_headers_trans_actions[q]; l = _tsip_machine_parser_headers_actions[t]; t += 1; while (l > 0) { l -= 1; t += 1; switch (_tsip_machine_parser_headers_actions[t - 1]) { case 0: var n = tsip_header_Dummy.prototype.Parse(o); u.add_headers(n); break; case 1: var n = tsip_header_Dummy.prototype.Parse(o); u.add_headers(n); break; case 2: var n = tsip_header_Dummy.prototype.Parse(o); u.add_headers(n); break; case 3: var n = tsip_header_Dummy.prototype.Parse(o); u.add_headers(n); break; case 4: var n = tsip_header_Dummy.prototype.Parse(o); u.add_headers(n); break; case 5: var n = tsip_header_Dummy.prototype.Parse(o); u.add_headers(n); break; case 6: var n = tsip_header_Allow.prototype.Parse(o); u.add_headers(n); break; case 7: var n = tsip_header_Allow_Events.prototype.Parse(o); u.add_headers(n); break; case 8: var n = tsip_header_Dummy.prototype.Parse(o); u.add_headers(n); break; case 9: var n = tsip_header_Authorization.prototype.Parse(o); u.add_headers(n); break; case 10: var n = tsip_header_Call_ID.prototype.Parse(o); u.add_headers(n); break; case 11: var n = tsip_header_Dummy.prototype.Parse(o); u.add_headers(n); break; case 12: var a = tsip_header_Contact.prototype.Parse(o); for (var m = 0; m < a.length; ++m) { u.add_header(a[m]) } break; case 13: var n = tsip_header_Dummy.prototype.Parse(o); u.add_headers(n); break; case 14: var n = tsip_header_Dummy.prototype.Parse(o); u.add_headers(n); break; case 15: var n = tsip_header_Dummy.prototype.Parse(o); u.add_headers(n); break; case 16: var n = tsip_header_Content_Length.prototype.Parse(o); u.add_headers(n); break; case 17: var n = tsip_header_Content_Type.prototype.Parse(o); u.add_headers(n); break; case 18: var n = tsip_header_CSeq.prototype.Parse(o); u.add_headers(n); break; case 19: var n = tsip_header_Date.prototype.Parse(o); u.add_headers(n); break; case 20: var n = tsip_header_Dummy.prototype.Parse(o); u.add_headers(n); break; case 21: var n = tsip_header_Event.prototype.Parse(o); u.add_headers(n); break; case 22: var n = tsip_header_Expires.prototype.Parse(o); u.add_headers(n); break; case 23: var n = tsip_header_From.prototype.Parse(o); u.add_headers(n); break; case 24: var n = tsip_header_Dummy.prototype.Parse(o); u.add_headers(n); break; case 25: var n = tsip_header_Dummy.prototype.Parse(o); u.add_headers(n); break; case 26: var n = tsip_header_Dummy.prototype.Parse(o); u.add_headers(n); break; case 27: var n = tsip_header_Dummy.prototype.Parse(o); u.add_headers(n); break; case 28: var n = tsip_header_Dummy.prototype.Parse(o); u.add_headers(n); break; case 29: var n = tsip_header_Max_Forwards.prototype.Parse(o); u.add_headers(n); break; case 30: var n = tsip_header_Dummy.prototype.Parse(o); u.add_headers(n); break; case 31: var n = tsip_header_Min_Expires.prototype.Parse(o); u.add_headers(n); break; case 32: var n = tsip_header_Min_SE.prototype.Parse(o); u.add_headers(n); break; case 33: var n = tsip_header_Organization.prototype.Parse(o); u.add_headers(n); break; case 34: var n = tsip_header_P_Access_Network_Info.prototype.Parse(o); u.add_headers(n); break; case 35: var n = tsip_header_Dummy.prototype.Parse(o); u.add_headers(n); break; case 36: var a = tsip_header_P_Asserted_Identity.prototype.Parse(o); if (a) { for (var m = 0; m < a.length; ++m) { u.add_header(a[m]) } } break; case 37: var a = tsip_header_P_Associated_URI.prototype.Parse(o); if (a) { for (var m = 0; m < a.length; ++m) { u.add_header(a[m]) } } break; case 38: var n = tsip_header_Dummy.prototype.Parse(o); u.add_headers(n); break; case 39: var n = tsip_header_P_Charging_Function_Addresses.prototype.Parse(o); u.add_headers(n); break; case 40: var n = tsip_header_Dummy.prototype.Parse(o); u.add_headers(n); break; case 41: var n = tsip_header_Dummy.prototype.Parse(o); u.add_headers(n); break; case 42: var n = tsip_header_Dummy.prototype.Parse(o); u.add_headers(n); break; case 43: var n = tsip_header_Dummy.prototype.Parse(o); u.add_headers(n); break; case 44: var n = tsip_header_Dummy.prototype.Parse(o); u.add_headers(n); break; case 45: var n = tsip_header_Dummy.prototype.Parse(o); u.add_headers(n); break; case 46: var n = tsip_header_Dummy.prototype.Parse(o); u.add_headers(n); break; case 47: var n = tsip_header_Dummy.prototype.Parse(o); u.add_headers(n); break; case 48: var a = tsip_header_P_Preferred_Identity.prototype.Parse(o); if (a) { for (var m = 0; m < a.length; ++m) { u.add_header(a[m]) } } break; case 49: var n = tsip_header_Dummy.prototype.Parse(o); u.add_headers(n); break; case 50: var n = tsip_header_Dummy.prototype.Parse(o); u.add_headers(n); break; case 51: var n = tsip_header_Dummy.prototype.Parse(o); u.add_headers(n); break; case 52: var a = tsip_header_Path.prototype.Parse(o); if (a) { for (var m = 0; m < a.length; ++m) { u.add_header(a[m]) } } break; case 53: var n = tsip_header_Dummy.prototype.Parse(o); u.add_headers(n); break; case 54: var n = tsip_header_Privacy.prototype.Parse(o); u.add_headers(n); break; case 55: var n = tsip_header_WWW_Authenticate.prototype.Parse(o); u.add_headers(n); k = (y - 1); break; case 56: var n = tsip_header_Authorization.prototype.Parse(o); u.add_headers(n); break; case 57: var n = tsip_header_Dummy.prototype.Parse(o); u.add_headers(n); break; case 58: var n = tsip_header_RAck.prototype.Parse(o); u.add_headers(n); break; case 59: var n = tsip_header_Dummy.prototype.Parse(o); u.add_headers(n); break; case 60: var a = tsip_header_Record_Route.prototype.Parse(o); if (a) { for (var m = 0; m < a.length; ++m) { u.add_header(a[m]) } } break; case 61: var n = tsip_header_Refer_Sub.prototype.Parse(o); u.add_headers(n); break; case 62: var n = tsip_header_Refer_To.prototype.Parse(o); u.add_headers(n); break; case 63: var n = tsip_header_Referred_By.prototype.Parse(o); u.add_headers(n); break; case 64: var n = tsip_header_Dummy.prototype.Parse(o); u.add_headers(n); break; case 65: var n = tsip_header_Dummy.prototype.Parse(o); u.add_headers(n); break; case 66: var n = tsip_header_Dummy.prototype.Parse(o); u.add_headers(n); break; case 67: var n = tsip_header_Dummy.prototype.Parse(o); u.add_headers(n); break; case 68: var n = tsip_header_Require.prototype.Parse(o); u.add_headers(n); break; case 69: var n = tsip_header_Dummy.prototype.Parse(o); u.add_headers(n); break; case 70: var n = tsip_header_Dummy.prototype.Parse(o); u.add_headers(n); break; case 71: var a = tsip_header_Route.prototype.Parse(o); if (a) { for (var m = 0; m < a.length; ++m) { u.add_header(a[m]) } } break; case 72: var n = tsip_header_RSeq.prototype.Parse(o); u.add_headers(n); break; case 73: var n = tsip_header_Dummy.prototype.Parse(o); u.add_headers(n); break; case 74: var n = tsip_header_Dummy.prototype.Parse(o); u.add_headers(n); break; case 75: var n = tsip_header_Dummy.prototype.Parse(o); u.add_headers(n); break; case 76: var n = tsip_header_Server.prototype.Parse(o); u.add_headers(n); break; case 77: var a = tsip_header_Service_Route.prototype.Parse(o); if (a) { for (var m = 0; m < a.length; ++m) { u.add_header(a[m]) } } break; case 78: var n = tsip_header_Session_Expires.prototype.Parse(o); u.add_headers(n); break; case 79: var n = tsip_header_SIP_ETag.prototype.Parse(o); u.add_headers(n); break; case 80: var n = tsip_header_SIP_If_Match.prototype.Parse(o); u.add_headers(n); break; case 81: var n = tsip_header_Dummy.prototype.Parse(o); u.add_headers(n); break; case 82: var n = tsip_header_Subscription_State.prototype.Parse(o); u.add_headers(n); break; case 83: var n = tsip_header_Supported.prototype.Parse(o); u.add_headers(n); break; case 84: var n = tsip_header_Dummy.prototype.Parse(o); u.add_headers(n); break; case 85: var n = tsip_header_Dummy.prototype.Parse(o); u.add_headers(n); break; case 86: var n = tsip_header_To.prototype.Parse(o); u.add_headers(n); break; case 87: var n = tsip_header_Dummy.prototype.Parse(o); u.add_headers(n); break; case 88: var n = tsip_header_User_Agent.prototype.Parse(o); u.add_headers(n); break; case 89: var a = tsip_header_Via.prototype.Parse(o); if (a) { for (var m = 0; m < a.length; ++m) { u.add_header(a[m]) } } break; case 90: var n = tsip_header_Warning.prototype.Parse(o); u.add_headers(n); break; case 91: var n = tsip_header_WWW_Authenticate.prototype.Parse(o); u.add_headers(n); k = (y - 1); break; case 92: var n = tsip_header_Dummy.prototype.Parse(o); u.add_headers(n); break } } } if (_trigger_goto) { continue } } if (r <= s) { if (f == 0) { r = v; continue } k += 1; if (k != y) { r = j; continue } } if (r <= x) {} if (r <= v) { break } } if (f < 1395) { tsk_utils_log_error("Failed to parse header: " + o); return -2 } return 0 } tsip_transac.prototype.__magic_cookie = "z9hG4bK"; var tsip_transac_event_type_e = { INCOMING_MSG: 0, OUTGOING_MSG: 1, CANCELED: 2, TERMINATED: 3, TIMEDOUT: 4, ERROR: 5, TRANSPORT_ERROR: 6 }; var tsip_transac_type_e = { NONE: -1, ICT: 0, IST: 1, NICT: 2, NIST: 3 }; function tsip_transac() { this.e_type = tsip_transac_type_e.NONE; this.o_dialog = null; this.o_fsm = null; this.b_reliable = true; this.b_running = false; this.b_initialized = false; this.s_branch = null; this.i_cseq_value = 0; this.s_cseq_method = null; this.s_callid = null; this.fn_callback = null } tsip_transac.prototype.init = function(c, b, h, f, e, g, d, a) { if (!this.b_initialized) { this.e_type = c; this.b_reliable = b; this.i_cseq_value = h; this.s_cseq_method = f; this.s_callid = e; this.o_dialog = g; this.o_fsm = new tsk_fsm(d, a, null, this); this.b_initialized = true } return 0 }; tsip_transac.prototype.deinit = function() { this.get_stack().o_layer_transac.remove(this); this.b_initialized = false; return 0 }; tsip_transac.prototype.timer_schedule = function(T, N) { this.timer_cancel(N); var This = this; var s_code = tsk_string_format("This.o_timer{1} = setTimeout(function(){ __tsip_transac_{0}_timer_callback(This, This.o_timer{1})}, This.i_timer{1});", T, N); eval(s_code) }; tsip_transac.prototype.timer_cancel = function(N) { var s_code = tsk_string_format("if(this.o_timer{0}) { clearTimeout(this.o_timer{0}); this.o_timer{0} = null; }", N); eval(s_code) }; tsip_transac.prototype.set_callback = function(a) { this.fn_callback = a }; tsip_transac.prototype.send = function(b, a) { return this.get_stack().o_layer_transport.send(b, a) }; tsip_transac.prototype.callback = function(b, a) { if (this.fn_callback) { return this.fn_callback(this, b, a) } tsk_utils_log_error("Invalid callback function"); return -1 }; tsip_transac.prototype.get_type = function() { return this.e_type }; tsip_transac.prototype.get_fsm = function() { return this.o_fsm }; tsip_transac.prototype.get_dialog = function() { return this.o_dialog }; tsip_transac.prototype.get_session = function() { if (this.o_dialog) { return this.o_dialog.o_session } return null }; tsip_transac.prototype.get_stack = function() { var a = this.get_session(); if (a) { return a.o_stack } return null }; tsip_transac.prototype.fsm_act = function(a, b) { if (!this.o_fsm) { tsk_utils_log_error("Invalid argument"); return -1 } return this.o_fsm.act(a, this, b, this, b) }; tsip_transac.prototype.send = function(c, b) { var a = this.get_stack(); if (!a || !a.o_layer_transport) { tsk_utils_log_error("Invalid state"); return -1 } return a.o_layer_transport.send(c, b) }; tsip_transac.prototype.compare = function(a) { return tsip_transac_compare(this, a) }; function tsip_transac_compare(b, a) { if (b && a) { if ((b.s_branch == a.s_branch) && (b.s_cseq_method == a.s_cseq_method)) { return 0 } } return -1 } if (!window.__b_release_mode) { tsip_api_add_js_scripts("head", "src/tinySIP/src/transactions/tsip_transac_ict.js", "src/tinySIP/src/transactions/tsip_transac_ist.js", "src/tinySIP/src/transactions/tsip_transac_layer.js", "src/tinySIP/src/transactions/tsip_transac_nict.js", "src/tinySIP/src/transactions/tsip_transac_nist.js") } tsip_transac_ict.prototype = Object.create(tsip_transac.prototype); tsip_transac_ict.prototype.__b_debug_state_machine = false; var tsip_transac_ict_actions_e = { CANCEL: tsip_action_type_e.CANCEL, SEND: 10001, TIMER_A: 10002, TIMER_B: 10003, TIMER_D: 10004, TIMER_M: 10005, I_1XX: 10006, I_2XX: 10007, I_300_to_699: 10008, TRANSPOR_TERROR: 10009, ERROR: 10010 }; var tsip_transac_ict_states_e = { STARTED: 0, CALLING: 1, PROCEEDING: 2, COMPLETED: 3, ACCEPTED: 4, TERMINATED: 5 }; function tsip_transac_ict(b, e, c, d) { var a; if (!d || !(a = d.get_stack())) { tsk_utils_log_error("Invalid argument"); return null } tsip_transac.call(this); this.init(tsip_transac_type_e.ICT, b, e, "INVITE", c, d, tsip_transac_ict_states_e.STARTED, tsip_transac_ict_states_e.TERMINATED); this.set_callback(__tsip_transac_ict_event_callback); this.o_fsm.set_debug_enabled(tsip_transac_ict.prototype.__b_debug_state_machine); this.o_fsm.set_onterm_callback(__tsip_transac_ict_onterm, this); this.o_timerA = null; this.o_timerB = null; this.o_timerD = null; this.o_timerM = null; this.i_timerA = a.o_timers.getA(); this.i_timerB = a.o_timers.getB(); this.i_timerD = b ? 0 : a.o_timers.getD(); this.i_timerM = a.o_timers.getM(); this.o_fsm.set(tsk_fsm_entry.prototype.CreateAlways(tsip_transac_ict_states_e.STARTED, tsip_transac_ict_actions_e.SEND, tsip_transac_ict_states_e.CALLING, __tsip_transac_ict_Started_2_Calling_X_send, "tsip_transac_ict_Started_2_Calling_X_send"), tsk_fsm_entry.prototype.CreateAlwaysNothing(tsip_transac_ict_states_e.STARTED, "tsip_transac_ict_Started_2_Started_X_any"), tsk_fsm_entry.prototype.CreateAlways(tsip_transac_ict_states_e.CALLING, tsip_transac_ict_actions_e.TIMER_A, tsip_transac_ict_states_e.CALLING, __tsip_transac_ict_Calling_2_Calling_X_timerA, "tsip_transac_ict_Calling_2_Calling_X_timerA"), tsk_fsm_entry.prototype.CreateAlways(tsip_transac_ict_states_e.CALLING, tsip_transac_ict_actions_e.TIMER_B, tsip_transac_ict_states_e.TERMINATED, __tsip_transac_ict_Calling_2_Terminated_X_timerB, "tsip_transac_ict_Calling_2_Terminated_X_timerB"), tsk_fsm_entry.prototype.CreateAlways(tsip_transac_ict_states_e.CALLING, tsip_transac_ict_actions_e.I_300_to_699, tsip_transac_ict_states_e.COMPLETED, __tsip_transac_ict_Calling_2_Completed_X_300_to_699, "tsip_transac_ict_Calling_2_Completed_X_300_to_699"), tsk_fsm_entry.prototype.CreateAlways(tsip_transac_ict_states_e.CALLING, tsip_transac_ict_actions_e.I_1XX, tsip_transac_ict_states_e.PROCEEDING, __tsip_transac_ict_Calling_2_Proceeding_X_1xx, "tsip_transac_ict_Calling_2_Proceeding_X_1xx"), tsk_fsm_entry.prototype.CreateAlways(tsip_transac_ict_states_e.CALLING, tsip_transac_ict_actions_e.I_2XX, tsip_transac_ict_states_e.ACCEPTED, __tsip_transac_ict_Calling_2_Accepted_X_2xx, "tsip_transac_ict_Calling_2_Accepted_X_2xx"), tsk_fsm_entry.prototype.CreateAlways(tsip_transac_ict_states_e.PROCEEDING, tsip_transac_ict_actions_e.I_1XX, tsip_transac_ict_states_e.PROCEEDING, __tsip_transac_ict_Proceeding_2_Proceeding_X_1xx, "tsip_transac_ict_Proceeding_2_Proceeding_X_1xx"), tsk_fsm_entry.prototype.CreateAlways(tsip_transac_ict_states_e.PROCEEDING, tsip_transac_ict_actions_e.I_300_to_699, tsip_transac_ict_states_e.COMPLETED, __tsip_transac_ict_Proceeding_2_Completed_X_300_to_699, "tsip_transac_ict_Proceeding_2_Completed_X_300_to_699"), tsk_fsm_entry.prototype.CreateAlways(tsip_transac_ict_states_e.PROCEEDING, tsip_transac_ict_actions_e.I_2XX, tsip_transac_ict_states_e.ACCEPTED, __tsip_transac_ict_Proceeding_2_Accepted_X_2xx, "tsip_transac_ict_Proceeding_2_Accepted_X_2xx"), tsk_fsm_entry.prototype.CreateAlways(tsip_transac_ict_states_e.COMPLETED, tsip_transac_ict_actions_e.I_300_to_699, tsip_transac_ict_states_e.COMPLETED, __tsip_transac_ict_Completed_2_Completed_X_300_to_699, "tsip_transac_ict_Completed_2_Completed_X_300_to_699"), tsk_fsm_entry.prototype.CreateAlways(tsip_transac_ict_states_e.COMPLETED, tsip_transac_ict_actions_e.TIMER_D, tsip_transac_ict_states_e.TERMINATED, __tsip_transac_ict_Completed_2_Terminated_X_timerD, "tsip_transac_ict_Completed_2_Terminated_X_timerD"), tsk_fsm_entry.prototype.CreateAlways(tsip_transac_ict_states_e.ACCEPTED, tsip_transac_ict_actions_e.I_2XX, tsip_transac_ict_states_e.ACCEPTED, __tsip_transac_ict_Accepted_2_Accepted_X_2xx, "tsip_transac_ict_Accepted_2_Accepted_X_2xx"), tsk_fsm_entry.prototype.CreateAlways(tsip_transac_ict_states_e.ACCEPTED, tsip_transac_ict_actions_e.TIMER_M, tsip_transac_ict_states_e.TERMINATED, __tsip_transac_ict_Accepted_2_Terminated_X_timerM, "tsip_transac_ict_Accepted_2_Terminated_X_timerM"), tsk_fsm_entry.prototype.CreateAlways(tsk_fsm.prototype.__i_state_any, tsip_transac_ict_actions_e.TRANSPORT_ERROR, tsip_transac_ict_states_e.TERMINATED, __tsip_transac_ict_Any_2_Terminated_X_transportError, "tsip_transac_ict_Any_2_Terminated_X_transportError"), tsk_fsm_entry.prototype.CreateAlways(tsk_fsm.prototype.__i_state_any, tsip_transac_ict_actions_e.ERROR, tsip_transac_ict_states_e.TERMINATED, __tsip_transac_ict_Any_2_Terminated_X_Error, "tsip_transac_ict_Any_2_Terminated_X_Error"), tsk_fsm_entry.prototype.CreateAlways(tsk_fsm.prototype.__i_state_any, tsip_transac_ict_actions_e.CANCEL, tsip_transac_ict_states_e.TERMINATED, __tsip_transac_ict_Any_2_Terminated_X_cancel, "tsip_transac_ict_Any_2_Terminated_X_cancel")) } tsip_transac_ict.prototype.start = function(a) { var b = -1; if (a && !this.b_running) { this.s_branch = tsk_string_format("{0}{1}", tsip_transac.prototype.__magic_cookie, tsk_string_random(32)); this.b_running = true; this.o_request = a; b = this.fsm_act(tsip_transac_ict_actions_e.SEND, a) } return b }; tsip_transac_ict.prototype.send_ack = function(c) { if (!this.o_request || !c) { tsk_utils_log_error("Invalid state"); return -1 } if (!this.o_request.o_hdr_firstVia || !this.o_request.o_hdr_From || !this.o_request.line.request.o_uri || !this.o_request.o_hdr_Call_ID || !this.o_request.o_hdr_CSeq) { tsk_utils_log_error("Invalid INVITE message"); return -2 } if (!c.o_hdr_To) { tsk_utils_log_error("Invalid response message"); return -3 } var d = -1; var b = null; if ((b = new tsip_request("ACK", this.o_request.line.request.o_uri, this.o_request.o_hdr_From.o_uri, c.o_hdr_To.o_uri, this.o_request.o_hdr_Call_ID.s_value, this.o_request.o_hdr_CSeq.i_seq))) { b.o_hdr_firstVia = this.o_request.o_hdr_firstVia; if (b.o_hdr_From) { b.o_hdr_From.s_tag = this.o_request.o_hdr_From.s_tag } if (b.o_hdr_To) { b.o_hdr_To.s_tag = c.o_hdr_To.s_tag } if (this.get_stack().network.e_proxy_cscf_type == tsip_transport_type_e.WS || this.get_stack().network.e_proxy_cscf_type == tsip_transport_type_e.WSS) { var e = this.get_stack().__get_proxy_outbound_uri_string(); if (e) { b.add_header(new tsip_header_Dummy("Route", e), true) } } for (var a = 0; a < this.o_request.ao_headers.length; ++a) { if (this.o_request.ao_headers[a].e_type == tsip_header_type_e.Route) { b.add_header(this.o_request.ao_headers[a]) } } b.s_sigcomp_id = this.get_session().s_sigcomp_id; d = this.send(b.o_hdr_firstVia.s_branch, b) } return d }; function __tsip_transac_ict_Started_2_Calling_X_send(a) { var b = a[0]; b.send(b.s_branch, b.o_request); if (!b.b_reliable) { b.timer_schedule("ict", "A") } b.timer_schedule("ict", "B"); return 0 } function __tsip_transac_ict_Calling_2_Calling_X_timerA(a) { var b = a[0]; b.send(b.s_branch, b.o_request); b.i_timerA <<= 1; b.timer_schedule("ict", "A"); return 0 } function __tsip_transac_ict_Calling_2_Terminated_X_timerB(a) { var b = a[0]; b.get_dialog().callback(tsip_dialog_event_type_e.TIMEDOUT, null); return 0 } function __tsip_transac_ict_Calling_2_Completed_X_300_to_699(a) { var b = a[0]; var c = a[1]; var d; if (!b.b_reliable) { b.timer_cancel("A") } b.timer_cancel("B"); b.timer_schedule("ict", "D"); if ((d = b.send_ack(c)) <= 0) { return d } return b.get_dialog().callback(tsip_dialog_event_type_e.I_MSG, c) } function __tsip_transac_ict_Calling_2_Proceeding_X_1xx(a) { var b = a[0]; var c = a[1]; if (!b.b_reliable) { b.timer_cancel("A") } b.timer_cancel("B"); return b.get_dialog().callback(tsip_dialog_event_type_e.I_MSG, c) } function __tsip_transac_ict_Calling_2_Accepted_X_2xx(a) { var b = a[0]; var c = a[1]; b.timer_schedule("ict", "M"); if (!b.b_reliable) { b.timer_schedule("ict", "A") } b.timer_schedule("ict", "B"); return b.get_dialog().callback(tsip_dialog_event_type_e.I_MSG, c) } function __tsip_transac_ict_Proceeding_2_Proceeding_X_1xx(a) { var b = a[0]; var c = a[1]; return b.get_dialog().callback(tsip_dialog_event_type_e.I_MSG, c) } function __tsip_transac_ict_Proceeding_2_Completed_X_300_to_699(a) { var b = a[0]; var c = a[1]; var d; if (!b.b_reliable) { b.timer_cancel("A") } b.timer_cancel("B"); b.timer_schedule("ict", "D"); if ((d = b.send_ack(c)) <= 0) { return d } return b.get_dialog().callback(tsip_dialog_event_type_e.I_MSG, c) } function __tsip_transac_ict_Proceeding_2_Accepted_X_2xx(a) { var b = a[0]; var c = a[1]; b.timer_schedule("ict", "M"); if (!b.b_reliable) { b.timer_schedule("ict", "A") } b.timer_schedule("ict", "B"); return b.get_dialog().callback(tsip_dialog_event_type_e.I_MSG, c) } function __tsip_transac_ict_Completed_2_Completed_X_300_to_699(a) { var b = a[0]; var c = a[1]; return (b.send_ack(c) <= 0 ? -1 : 0) } function __tsip_transac_ict_Completed_2_Terminated_X_timerD(a) { return 0 } function __tsip_transac_ict_Accepted_2_Accepted_X_2xx(a) { var b = a[0]; var c = a[1]; return b.get_dialog().callback(tsip_dialog_event_type_e.I_MSG, c) } function __tsip_transac_ict_Accepted_2_Terminated_X_timerM(a) { return 0 } function __tsip_transac_ict_Any_2_Terminated_X_transportError(a) { var b = a[0]; return b.get_dialog().callback(tsip_dialog_event_type_e.TRANSPORT_ERROR, null) } function __tsip_transac_ict_Any_2_Terminated_X_Error(a) { var b = a[0]; return b.get_dialog().callback(tsip_dialog_event_type_e.ERROR, null) } function __tsip_transac_ict_Any_2_Terminated_X_cancel(a) { return 0 } function __tsip_transac_ict_onterm(a) { a.timer_cancel("A"); a.timer_cancel("B"); a.timer_cancel("D"); a.timer_cancel("M"); return a.deinit() } function __tsip_transac_ict_event_callback(a, c, b) { if (!a) { tsk_utils_log_error("Invalid argument"); return -1 } var d = 0; switch (c) { case tsip_transac_event_type_e.INCOMING_MSG: if (b && b.is_response()) { if (b.is_1xx()) { d = a.fsm_act(tsip_transac_ict_actions_e.I_1XX, b) } else { if (b.is_2xx()) { d = a.fsm_act(tsip_transac_ict_actions_e.I_2XX, b) } else { if (b.is_3456()) { d = a.fsm_act(tsip_transac_ict_actions_e.I_300_to_699, b) } else { tsk_utils_log_warn("Not supported status code: " + b.get_response_code()) } } } } break; case tsip_transac_event_type_e.CANCELED: case tsip_transac_event_type_e.TERMINATED: case tsip_transac_event_type_e.TIMEDOUT: break; case tsip_transac_event_type_e.ERROR: d = a.fsm_act(tsip_transac_ict_actions_e.ERROR, b); break; case tsip_transac_event_type_e.TRANSPORT_ERROR: d = a.fsm_act(tsip_transac_ict_actions_e.TRANSPORT_ERROR, b); break } return d } function __tsip_transac_ict_timer_callback(b, a) { if (b) { if (a == b.o_timerA) { b.fsm_act(tsip_transac_ict_actions_e.TIMER_A, null) } else { if (a == b.o_timerB) { b.fsm_act(tsip_transac_ict_actions_e.TIMER_B, null) } else { if (a == b.o_timerD) { b.fsm_act(tsip_transac_ict_actions_e.TIMER_D, null) } else { if (a == b.o_timerM) { b.fsm_act(tsip_transac_ict_actions_e.TIMER_M, null) } } } } } } tsip_transac_ist.prototype = Object.create(tsip_transac.prototype); tsip_transac_ist.prototype.__b_debug_state_machine = true; var tsip_transac_ist_actions_e = { CANCEL: tsip_action_type_e.CANCEL, RECV_INVITE: 10001, RECV_ACK: 10002, SEND_1XX: 10003, SEND_2XX: 10004, SEND_300_to_699: 10005, SEND_NON1XX: 10006, TIMER_H: 10007, TIMER_I: 10008, TIMER_G: 10009, TIMER_L: 10010, TIMER_X: 10011, TRANSPORT_ERROR: 10012, ERROR: 10013 }; var tsip_transac_ist_states_e = { STARTED: 0, PROCEEDING: 1, COMPLETED: 2, ACCEPTED: 3, CONFIRMED: 4, TERMINATED: 5 }; function tsip_transac_ist(b, e, c, d) { var a; if (!d || !(a = d.get_stack())) { tsk_utils_log_error("Invalid argument"); return null } tsip_transac.call(this); this.o_lastResponse = null; this.init(tsip_transac_type_e.IST, b, e, "INVITE", c, d, tsip_transac_ist_states_e.STARTED, tsip_transac_ist_states_e.TERMINATED); this.set_callback(__tsip_transac_ist_event_callback); this.o_fsm.set_debug_enabled(tsip_transac_ist.prototype.__b_debug_state_machine); this.o_fsm.set_onterm_callback(__tsip_transac_ist_onterm, this); this.o_timerH = null; this.o_timerI = null; this.o_timerG = null; this.o_timerL = null; this.o_timerX = null; this.i_timerH = a.o_timers.getH(); this.i_timerI = b ? 0 : a.o_timers.getI(); this.i_timerG = a.o_timers.getG(); this.i_timerL = a.o_timers.getL(); this.i_timerX = a.o_timers.getG(); this.o_fsm.set(tsk_fsm_entry.prototype.CreateAlways(tsip_transac_ist_states_e.STARTED, tsip_transac_ist_actions_e.RECV_INVITE, tsip_transac_ist_states_e.PROCEEDING, __tsip_transac_ist_Started_2_Proceeding_X_INVITE, "tsip_transac_ist_Started_2_Proceeding_X_INVITE"), tsk_fsm_entry.prototype.CreateAlwaysNothing(tsip_transac_ist_states_e.STARTED, "tsip_transac_ist_Started_2_Started_X_any"), tsk_fsm_entry.prototype.CreateAlways(tsip_transac_ist_states_e.PROCEEDING, tsip_transac_ist_actions_e.RECV_INVITE, tsip_transac_ist_states_e.PROCEEDING, __tsip_transac_ist_Proceeding_2_Proceeding_X_INVITE, "tsip_transac_ist_Proceeding_2_Proceeding_X_INVITE"), tsk_fsm_entry.prototype.Create(tsip_transac_ist_states_e.PROCEEDING, tsip_transac_ist_actions_e.SEND_1XX, __tsip_transac_ist_cond_is_resp2invite, tsip_transac_ist_states_e.PROCEEDING, __tsip_transac_ist_Proceeding_2_Proceeding_X_1xx, "tsip_transac_ist_Proceeding_2_Proceeding_X_1xx"), tsk_fsm_entry.prototype.Create(tsip_transac_ist_states_e.PROCEEDING, tsip_transac_ist_actions_e.SEND_300_to_699, __tsip_transac_ist_cond_is_resp2invite, tsip_transac_ist_states_e.COMPLETED, __tsip_transac_ist_Proceeding_2_Completed_X_300_to_699, "tsip_transac_ist_Proceeding_2_Completed_X_300_to_699"), tsk_fsm_entry.prototype.Create(tsip_transac_ist_states_e.PROCEEDING, tsip_transac_ist_actions_e.SEND_2XX, __tsip_transac_ist_cond_is_resp2invite, tsip_transac_ist_states_e.ACCEPTED, __tsip_transac_ist_Proceeding_2_Accepted_X_2xx, "tsip_transac_ist_Proceeding_2_Accepted_X_2xx"), tsk_fsm_entry.prototype.CreateAlways(tsip_transac_ist_states_e.COMPLETED, tsip_transac_ist_actions_e.RECV_INVITE, tsip_transac_ist_states_e.COMPLETED, __tsip_transac_ist_Completed_2_Completed_INVITE, "tsip_transac_ist_Completed_2_Completed_INVITE"), tsk_fsm_entry.prototype.CreateAlways(tsip_transac_ist_states_e.COMPLETED, tsip_transac_ist_actions_e.TIMER_G, tsip_transac_ist_states_e.COMPLETED, __tsip_transac_ist_Completed_2_Completed_timerG, "tsip_transac_ist_Completed_2_Completed_timerG"), tsk_fsm_entry.prototype.CreateAlways(tsip_transac_ist_states_e.COMPLETED, tsip_transac_ist_actions_e.TIMER_H, tsip_transac_ist_states_e.TERMINATED, __tsip_transac_ist_Completed_2_Terminated_timerH, "tsip_transac_ist_Completed_2_Terminated_timerH"), tsk_fsm_entry.prototype.CreateAlways(tsip_transac_ist_states_e.COMPLETED, tsip_transac_ist_actions_e.RECV_ACK, tsip_transac_ist_states_e.CONFIRMED, __tsip_transac_ist_Completed_2_Confirmed_ACK, "tsip_transac_ist_Completed_2_Confirmed_ACK"), tsk_fsm_entry.prototype.CreateAlways(tsip_transac_ist_states_e.ACCEPTED, tsip_transac_ist_actions_e.RECV_INVITE, tsip_transac_ist_states_e.ACCEPTED, __tsip_transac_ist_Accepted_2_Accepted_INVITE, "tsip_transac_ist_Accepted_2_Accepted_INVITE"), tsk_fsm_entry.prototype.Create(tsip_transac_ist_states_e.ACCEPTED, tsip_transac_ist_actions_e.SEND_2XX, __tsip_transac_ist_cond_is_resp2invite, tsip_transac_ist_states_e.ACCEPTED, __tsip_transac_ist_Accepted_2_Accepted_2xx, "tsip_transac_ist_Accepted_2_Accepted_2xx"), tsk_fsm_entry.prototype.CreateAlways(tsip_transac_ist_states_e.ACCEPTED, tsip_transac_ist_actions_e.TIMER_X, tsip_transac_ist_states_e.ACCEPTED, __tsip_transac_ist_Accepted_2_Accepted_timerX, "tsip_transac_ist_Accepted_2_Accepted_timerX"), tsk_fsm_entry.prototype.CreateAlways(tsip_transac_ist_states_e.ACCEPTED, tsip_transac_ist_actions_e.RECV_ACK, tsip_transac_ist_states_e.ACCEPTED, __tsip_transac_ist_Accepted_2_Accepted_iACK, "tsip_transac_ist_Accepted_2_Accepted_iACK"), tsk_fsm_entry.prototype.CreateAlways(tsip_transac_ist_states_e.ACCEPTED, tsip_transac_ist_actions_e.TIMER_L, tsip_transac_ist_states_e.TERMINATED, __tsip_transac_ist_Accepted_2_Terminated_timerL, "tsip_transac_ist_Accepted_2_Terminated_timerL"), tsk_fsm_entry.prototype.CreateAlways(tsip_transac_ist_states_e.CONFIRMED, tsip_transac_ist_actions_e.TIMER_I, tsip_transac_ist_states_e.TERMINATED, __tsip_transac_ist_Confirmed_2_Terminated_timerI, "tsip_transac_ist_Confirmed_2_Terminated_timerI"), tsk_fsm_entry.prototype.CreateAlways(tsk_fsm.prototype.__i_state_any, tsip_transac_ist_actions_e.TRANSPORT_ERROR, tsip_transac_ist_states_e.TERMINATED, __tsip_transac_ist_Any_2_Terminated_X_transportError, "tsip_transac_ist_Any_2_Terminated_X_transportError"), tsk_fsm_entry.prototype.CreateAlways(tsk_fsm.prototype.__i_state_any, tsip_transac_ist_actions_e.ERROR, tsip_transac_ist_states_e.TERMINATED, __tsip_transac_ist_Any_2_Terminated_X_Error, "tsip_transac_ist_Any_2_Terminated_X_Error"), tsk_fsm_entry.prototype.CreateAlways(tsk_fsm.prototype.__i_state_any, tsip_transac_ist_actions_e.CANCEL, tsip_transac_ist_states_e.TERMINATED, __tsip_transac_ist_Any_2_Terminated_X_cancel, "tsip_transac_ist_Any_2_Terminated_X_cancel")) } tsip_transac_ist.prototype.start = function(a) { var b = -1; if (a && !this.b_running) { this.b_running = true; b = this.fsm_act(tsip_transac_ist_actions_e.RECV_INVITE, a) } return b }; tsip_transac_ist.prototype.set_last_response = function(a) { this.o_lastResponse = a }; function __tsip_transac_ist_cond_is_resp2invite(a, b) { return b.is_response_to_invite() } function __tsip_transac_ist_Started_2_Proceeding_X_INVITE(a) { var b = a[0]; var c = a[1]; var e = -1; if (c) { var d; if ((d = new tsip_response(100, "Trying (sent from the Transaction Layer)", c))) { e = (b.send(b.s_branch, d) > 0 ? 0 : -1); b.set_last_response(d) } } if (e == 0) { e = b.get_dialog().callback(tsip_dialog_event_type_e.I_MSG, c) } return e } function __tsip_transac_ist_Proceeding_2_Proceeding_X_INVITE(a) { var b = a[0]; var c = -1; if (b.o_lastResponse) { c = (b.send(b.s_branch, b.o_lastResponse) > 0 ? 0 : -1) } return c } function __tsip_transac_ist_Proceeding_2_Proceeding_X_1xx(a) { var b = a[0]; var c = a[1]; var d; d = (b.send(b.s_branch, c) > 0 ? 0 : -1); b.set_last_response(c); return d } function __tsip_transac_ist_Proceeding_2_Completed_X_300_to_699(a) { var b = a[0]; var c = a[1]; var d; if (!b.b_reliable) { b.timer_schedule("ist", "G") } d = (b.send(b.s_branch, c) > 0 ? 0 : -1); b.set_last_response(c); b.timer_schedule("ist", "H"); return d } function __tsip_transac_ist_Proceeding_2_Accepted_X_2xx(a) { var b = a[0]; var c = a[1]; var d; d = (b.send(b.s_branch, c) > 0 ? 0 : -1); b.set_last_response(c); b.timer_schedule("ist", "X"); b.i_timerX <<= 1; b.timer_schedule("ist", "L"); return d } function __tsip_transac_ist_Completed_2_Completed_INVITE(a) { var b = a[0]; var c; if (b.o_lastResponse) { c = (b.send(b.s_branch, b.o_lastResponse) > 0 ? 0 : -1) } return c } function __tsip_transac_ist_Completed_2_Completed_timerG(a) { var b = a[0]; var c; if (b.o_lastResponse) { c = (b.send(b.s_branch, b.o_lastResponse) > 0 ? 0 : -1) } b.i_timerG = Math.min(b.i_timerG << 1, b.get_stack().o_timers.getT2()); b.timer_schedule("ist", "G"); return c } function __tsip_transac_ist_Completed_2_Terminated_timerH(a) { var b = a[0]; return b.get_dialog().callback(tsip_dialog_event_type_e.TRANSPORT_ERROR, null) } function __tsip_transac_ist_Completed_2_Confirmed_ACK(a) { var b = a[0]; b.timer_cancel("G"); b.timer_schedule("ist", "I"); return 0 } function __tsip_transac_ist_Accepted_2_Accepted_INVITE(a) { var b = a[0]; if (b.o_lastResponse) { return (b.send(b.s_branch, b.o_lastResponse) > 0 ? 0 : -1) } return 0 } function __tsip_transac_ist_Accepted_2_Accepted_2xx(a) { var b = a[0]; var c = a[1]; var d; d = (b.send(b.s_branch, c) > 0 ? 0 : -1); b.set_last_response(c); return d } function __tsip_transac_ist_Accepted_2_Accepted_timerX(a) { var b = a[0]; if (b.o_lastResponse) { var c = (b.send(b.s_branch, b.o_lastResponse) > 0 ? 0 : -1); if (c == 0) { b.i_timerX <<= 1; b.timer_schedule("ist", "X") } return c } return 0 } function __tsip_transac_ist_Accepted_2_Accepted_iACK(a) { var b = a[0]; var c = a[1]; b.timer_cancel("X"); return b.get_dialog().callback(tsip_dialog_event_type_e.I_MSG, c) } function __tsip_transac_ist_Accepted_2_Terminated_timerL(a) { return 0 } function __tsip_transac_ist_Confirmed_2_Terminated_timerI(a) { return 0 } function __tsip_transac_ist_Any_2_Terminated_X_transportError(a) { var b = a[0]; return b.get_dialog().callback(tsip_dialog_event_type_e.TRANSPORT_ERROR, null) } function __tsip_transac_ist_Any_2_Terminated_X_Error(a) { var b = a[0]; return b.get_dialog().callback(tsip_dialog_event_type_e.ERROR, null) } function __tsip_transac_ist_Any_2_Terminated_X_cancel(a) { return 0 } function __tsip_transac_ist_onterm(a) { a.timer_cancel("H"); a.timer_cancel("I"); a.timer_cancel("G"); a.timer_cancel("L"); a.timer_cancel("X"); return a.deinit() } function __tsip_transac_ist_event_callback(a, c, b) { if (!a) { tsk_utils_log_error("Invalid argument"); return -1 } var d = -1; switch (c) { case tsip_transac_event_type_e.INCOMING_MSG: if (b && b.is_request()) { if (b.is_invite()) { d = a.fsm_act(tsip_transac_ist_actions_e.RECV_INVITE, b) } else { if (b.is_ack()) { d = a.fsm_act(tsip_transac_ist_actions_e.RECV_ACK, b) } } } break; case tsip_transac_event_type_e.OUTGOING_MSG: if (b && b.is_response()) { if (b.is_1xx()) { d = a.fsm_act(tsip_transac_ist_actions_e.SEND_1XX, b) } else { if (b.is_2xx()) { d = a.fsm_act(tsip_transac_ist_actions_e.SEND_2XX, b) } else { if (b.is_3456()) { d = a.fsm_act(tsip_transac_ist_actions_e.SEND_300_to_699, b) } } } } break; case tsip_transac_event_type_e.CANCELED: case tsip_transac_event_type_e.TERMINATED: case tsip_transac_event_type_e.TIMEDOUT: break; case tsip_transac_event_type_e.ERROR: d = a.fsm_act(tsip_transac_ist_actions_e.ERROR, b); break; case tsip_transac_event_type_e.TRANSPORT_ERROR: d = a.fsm_act(tsip_transac_ist_actions_e.TRANSPORT_ERROR, b); break } return d } function __tsip_transac_ist_timer_callback(b, a) { if (b) { if (a == b.o_timerH) { b.fsm_act(tsip_transac_ist_actions_e.TIMER_H, null) } else { if (a == b.o_timerI) { b.fsm_act(tsip_transac_ist_actions_e.TIMER_I, null) } else { if (a == b.o_timerG) { b.fsm_act(tsip_transac_ist_actions_e.TIMER_G, null) } else { if (a == b.o_timerL) { b.fsm_act(tsip_transac_ist_actions_e.TIMER_L, null) } else { if (a == b.o_timerX) { b.fsm_act(tsip_transac_ist_actions_e.TIMER_X, null) } } } } } } } function tsip_transac_layer(a) { if (!a) { tsk_utils_log_error("Invalid argument"); return null } this.o_stack = a; this.ao_transacs = new Array() } tsip_transac_layer.prototype.transac_new = function(c, d, e) { if (!d || !d.o_hdr_CSeq || !d.o_hdr_Call_ID) { tsk_utils_log_error("Invalid argument"); return null } var a = null; while (this.b_locked) {} this.b_locked = true; var b = true; if (this.o_stack.o_layer_transport.ao_transports.length > 0) { b = this.o_stack.o_layer_transport.ao_transports[0].is_reliable() } if (d) { if (d.is_request()) { if (c) { if (d.is_invite()) { a = new tsip_transac_ict(b, d.o_hdr_CSeq.i_seq, d.o_hdr_Call_ID.s_value, e) } else { a = new tsip_transac_nict(b, d.o_hdr_CSeq.i_seq, d.o_hdr_CSeq.s_method, d.o_hdr_Call_ID.s_value, e) } } else { if (d.is_invite()) { a = new tsip_transac_ist(b, d.o_hdr_CSeq.i_seq, d.o_hdr_Call_ID.s_value, e) } else { a = new tsip_transac_nist(b, d.o_hdr_CSeq.i_seq, d.o_hdr_CSeq.s_method, d.o_hdr_Call_ID.s_value, e) } if (a) { a.s_branch = d.o_hdr_firstVia.s_branch } } if (a) { this.ao_transacs.push(a) } } } this.b_locked = false; return a }; tsip_transac_layer.prototype.indexof = function(a) { var c = -1; if (a) { while (this.b_locked) {} this.b_locked = true; for (var b = 0; b < this.ao_transacs.length; ++b) { if (a == this.ao_transacs[b]) { c = b; break } } this.b_locked = false } return c }; tsip_transac_layer.prototype.remove = function(a) { if (a) { while (this.b_locked) {} this.b_locked = true; for (var b = 0; b < this.ao_transacs.length; ++b) { if (a == this.ao_transacs[b]) { this.ao_transacs.splice(b, 1); break } } this.b_locked = false } }; tsip_transac_layer.prototype.cancel_by_dialog = function(c) { if (!c) { tsk_utils_log_error("Invalid argument"); return -1 } var a = null; while (this.b_locked) {} this.b_locked = true; for (var b = 0; b < this.ao_transacs.length; ++b) { a = this.ao_transacs[b]; if (c.compare(a.get_dialog()) == 0) { setTimeout(function() { a.fsm_act(tsip_action_type_e.CANCEL, null) }, 1) } } this.b_locked = false; return 0 }; tsip_transac_layer.prototype.find_client = function(c) { if (!c) { tsk_utils_log_error("Invalid argument"); return null } var d = null; var a; if (!c.o_hdr_firstVia || !c.o_hdr_CSeq) { return null } while (this.b_locked) {} this.b_locked = true; for (var b = 0; b < this.ao_transacs.length; ++b) { a = this.ao_transacs[b]; if ((a.s_branch == c.o_hdr_firstVia.s_branch) && (a.s_cseq_method == c.o_hdr_CSeq.s_method)) { d = a; break } } this.b_locked = false; return d }; tsip_transac_layer.prototype.find_server = function(c) { var d = null; var a; if (!c.o_hdr_firstVia || !c.o_hdr_CSeq || !c.o_hdr_Call_ID) { return null } while (this.b_locked) {} this.b_locked = true; for (var b = 0; b < this.ao_transacs.length; ++b) { a = this.ao_transacs[b]; if (c.is_ack() && (a.s_callid == c.o_hdr_Call_ID.s_value)) { if (tsk_string_iequals(a.s_cseq_method, "INVITE") && c.o_hdr_CSeq.i_seq == a.i_cseq_value) { d = a; break } } else { if (tsk_string_equals(a.s_branch, c.o_hdr_firstVia.s_branch) && (1 == 1)) { if (tsk_string_equals(a.s_cseq_method, c.o_hdr_CSeq.s_method)) { d = a; break } else { if (c.is_cancel() || c.is_response_to_cancel()) { d = a; break } } } } } this.b_locked = false; return d }; tsip_transac_layer.prototype.handle_incoming_message = function(b) { if (!b) { tsk_utils_log_error("Invalid argument"); return -1 } var c = -1; var a = null; if (b.is_request()) { a = this.find_server(b) } else { a = this.find_client(b) } if (a) { c = a.callback(tsip_transac_event_type_e.INCOMING_MSG, b) } return c }; tsip_transac_nict.prototype = Object.create(tsip_transac.prototype); tsip_transac_nict.prototype.__b_debug_state_machine = false; var tsip_transac_nict_actions_e = { CANCEL: tsip_action_type_e.CANCEL, SEND: 10001, TIMER_E: 10002, TIMER_F: 10003, TIMER_K: 10004, I_1xx: 10005, I_200_to_699: 10006, TRANSPORT_ERROR: 10007, ERROR: 10008 }; var tsip_transac_nict_states_e = { STARTED: 0, TRYING: 1, PROCEEDING: 2, COMPLETED: 3, TERMINATED: 4 }; function tsip_transac_nict(b, f, d, c, e) { var a; if (!e || !(a = e.get_stack())) { tsk_utils_log_error("Invalid argument"); return null } tsip_transac.call(this); this.o_request = null; this.init(tsip_transac_type_e.NICT, b, f, d, c, e, tsip_transac_nict_states_e.STARTED, tsip_transac_nict_states_e.TERMINATED); this.set_callback(__tsip_transac_nict_event_callback); this.o_fsm.set_debug_enabled(tsip_transac_nict.prototype.__b_debug_state_machine); this.o_fsm.set_onterm_callback(__tsip_transac_nict_onterm, this); this.o_timerE = null; this.o_timerF = null; this.o_timerK = null; this.i_timerE = a.o_timers.getE(); this.i_timerF = a.o_timers.getF(); this.i_timerK = b ? 0 : a.o_timers.getK(); this.o_fsm.set(tsk_fsm_entry.prototype.CreateAlways(tsip_transac_nict_states_e.STARTED, tsip_transac_nict_actions_e.SEND, tsip_transac_nict_states_e.TRYING, __tsip_transac_nict_Started_2_Trying_X_send, "__tsip_transac_nict_Started_2_Trying_X_send"), tsk_fsm_entry.prototype.CreateAlwaysNothing(tsip_transac_nict_states_e.STARTED, "tsip_transac_nict_Started_2_Started_X_any"), tsk_fsm_entry.prototype.CreateAlways(tsip_transac_nict_states_e.TRYING, tsip_transac_nict_actions_e.TIMER_E, tsip_transac_nict_states_e.TRYING, __tsip_transac_nict_Trying_2_Trying_X_timerE, "__tsip_transac_nict_Trying_2_Trying_X_timerE"), tsk_fsm_entry.prototype.CreateAlways(tsip_transac_nict_states_e.TRYING, tsip_transac_nict_actions_e.TIMER_F, tsip_transac_nict_states_e.TERMINATED, __tsip_transac_nict_Trying_2_Terminated_X_timerF, "__tsip_transac_nict_Trying_2_Terminated_X_timerF"), tsk_fsm_entry.prototype.CreateAlways(tsip_transac_nict_states_e.TRYING, tsip_transac_nict_actions_e.TRANSPORT_ERROR, tsip_transac_nict_states_e.TERMINATED, __tsip_transac_nict_Trying_2_Terminated_X_transportError, "__tsip_transac_nict_Trying_2_Terminated_X_transportError"), tsk_fsm_entry.prototype.CreateAlways(tsip_transac_nict_states_e.TRYING, tsip_transac_nict_actions_e.I_1xx, tsip_transac_nict_states_e.PROCEEDING, __tsip_transac_nict_Trying_2_Proceedding_X_1xx, "__tsip_transac_nict_Trying_2_Proceedding_X_1xx"), tsk_fsm_entry.prototype.CreateAlways(tsip_transac_nict_states_e.TRYING, tsip_transac_nict_actions_e.I_200_to_699, tsip_transac_nict_states_e.COMPLETED, __tsip_transac_nict_Trying_2_Completed_X_200_to_699, "__tsip_transac_nict_Trying_2_Completed_X_200_to_699"), tsk_fsm_entry.prototype.CreateAlways(tsip_transac_nict_states_e.PROCEEDING, tsip_transac_nict_actions_e.TIMER_E, tsip_transac_nict_states_e.PROCEEDING, __tsip_transac_nict_Proceeding_2_Proceeding_X_timerE, "__tsip_transac_nict_Proceeding_2_Proceeding_X_timerE"), tsk_fsm_entry.prototype.CreateAlways(tsip_transac_nict_states_e.PROCEEDING, tsip_transac_nict_actions_e.TIMER_F, tsip_transac_nict_states_e.TERMINATED, __tsip_transac_nict_Proceeding_2_Terminated_X_timerF, "__tsip_transac_nict_Proceeding_2_Terminated_X_timerF"), tsk_fsm_entry.prototype.CreateAlways(tsip_transac_nict_states_e.PROCEEDING, tsip_transac_nict_actions_e.TRANSPORT_ERROR, tsip_transac_nict_states_e.TERMINATED, __tsip_transac_nict_Proceeding_2_Terminated_X_transportError, "__tsip_transac_nict_Proceeding_2_Terminated_X_transportError"), tsk_fsm_entry.prototype.CreateAlways(tsip_transac_nict_states_e.PROCEEDING, tsip_transac_nict_actions_e.I_1xx, tsip_transac_nict_states_e.PROCEEDING, __tsip_transac_nict_Proceeding_2_Proceeding_X_1xx, "__tsip_transac_nict_Proceeding_2_Proceeding_X_1xx"), tsk_fsm_entry.prototype.CreateAlways(tsip_transac_nict_states_e.PROCEEDING, tsip_transac_nict_actions_e.I_200_to_699, tsip_transac_nict_states_e.COMPLETED, __tsip_transac_nict_Proceeding_2_Completed_X_200_to_699, "__tsip_transac_nict_Proceeding_2_Completed_X_200_to_699"), tsk_fsm_entry.prototype.CreateAlways(tsip_transac_nict_states_e.COMPLETED, tsip_transac_nict_actions_e.TIMER_K, tsip_transac_nict_states_e.TERMINATED, __tsip_transac_nict_Completed_2_Terminated_X_timerK, "__tsip_transac_nict_Completed_2_Terminated_X_timerK"), tsk_fsm_entry.prototype.CreateAlways(tsk_fsm.prototype.__i_state_any, tsip_transac_nict_actions_e.TRANSPORT_ERROR, tsip_transac_nict_states_e.TERMINATED, __tsip_transac_nict_Any_2_Terminated_X_transportError, "__tsip_transac_nict_Any_2_Terminated_X_transportError"), tsk_fsm_entry.prototype.CreateAlways(tsk_fsm.prototype.__i_state_any, tsip_transac_nict_actions_e.ERROR, tsip_transac_nict_states_e.TERMINATED, __tsip_transac_nict_Any_2_Terminated_X_Error, "__tsip_transac_nict_Any_2_Terminated_X_Error"), tsk_fsm_entry.prototype.CreateAlways(tsk_fsm.prototype.__i_state_any, tsip_transac_nict_actions_e.CANCEL, tsip_transac_nict_states_e.TERMINATED, __tsip_transac_nict_Any_2_Terminated_X_cancel, "__tsip_transac_nict_Any_2_Terminated_X_cancel")) } tsip_transac_nict.prototype.start = function(a) { var b = -1; if (a && !this.b_running) { if (a.is_cancel()) { this.s_branch = a.o_hdr_firstVia ? a.o_hdr_firstVia.s_branch : "doubango" } else { this.s_branch = tsk_string_format("{0}{1}", tsip_transac.prototype.__magic_cookie, tsk_string_random(32)) } this.b_running = true; this.o_request = a; b = this.fsm_act(tsip_transac_nict_actions_e.SEND, a) } return b }; function __tsip_transac_nict_Started_2_Trying_X_send(a) { var b = a[0]; var c = a[1]; b.send(b.s_branch, c); b.timer_schedule("nict", "F"); if (!b.b_reliable) { b.timer_schedule("nict", "E") } return 0 } function __tsip_transac_nict_Trying_2_Trying_X_timerE(a) { var b = a[0]; b.send(b.s_branch, b.o_request); b.i_timerE = Math.min(b.i_timerE << 1, b.get_stack().o_timers.getT2()); b.timer_schedule("nict", "E"); return 0 } function __tsip_transac_nict_Trying_2_Terminated_X_timerF(a) { var b = a[0]; b.get_dialog().callback(tsip_dialog_event_type_e.TIMEDOUT, b.o_request); return 0 } function __tsip_transac_nict_Trying_2_Terminated_X_transportError(a) { var b = a[0]; b.get_dialog().callback(tsip_dialog_event_type_e.TRANSPORT_ERROR, b.o_request); return 0 } function __tsip_transac_nict_Trying_2_Proceedding_X_1xx(a) { var b = a[0]; var c = a[1]; if (!b.b_reliable) { b.timer_cancel("E") } b.timer_cancel("F"); b.get_dialog().callback(tsip_dialog_event_type_e.I_MSG, c); return 0 } function __tsip_transac_nict_Trying_2_Completed_X_200_to_699(a) { var b = a[0]; var c = a[1]; if (!b.b_reliable) { b.timer_cancel("E") } b.timer_cancel("F"); b.get_dialog().callback(tsip_dialog_event_type_e.I_MSG, c); b.timer_schedule("nict", "K"); return 0 } function __tsip_transac_nict_Proceeding_2_Proceeding_X_timerE(a) { var b = a[0]; b.send(b.s_branch, b.o_request); b.i_timerE = Math.min(b.i_timerE << 1, b.get_stack().o_timers.getT2()); b.timer_schedule("nict", "E"); return 0 } function __tsip_transac_nict_Proceeding_2_Terminated_X_timerF(a) { var b = a[0]; b.get_dialog().callback(tsip_dialog_event_type_e.TRANSPORT_ERROR, null); return 0 } function __tsip_transac_nict_Proceeding_2_Terminated_X_transportError(a) { var b = a[0]; b.get_dialog().callback(tsip_dialog_event_type_e.TRANSPORT_ERROR, null); return 0 } function __tsip_transac_nict_Proceeding_2_Proceeding_X_1xx(a) { var b = a[0]; var c = a[1]; if (!b.b_reliable) { b.timer_cancel("E") } b.get_dialog().callback(tsip_dialog_event_type_e.I_MSG, c); return 0 } function __tsip_transac_nict_Proceeding_2_Completed_X_200_to_699(a) { var b = a[0]; var c = a[1]; if (!b.b_reliable) { b.timer_cancel("E") } b.get_dialog().callback(tsip_dialog_event_type_e.I_MSG, c); b.timer_schedule("nict", "K"); return 0 } function __tsip_transac_nict_Completed_2_Terminated_X_timerK(a) { return 0 } function __tsip_transac_nict_Any_2_Terminated_X_transportError(a) { var b = a[0]; return b.get_dialog().callback(tsip_dialog_event_type_e.TRANSPORT_ERROR, null) } function __tsip_transac_nict_Any_2_Terminated_X_Error(a) { var b = a[0]; return b.get_dialog().callback(tsip_dialog_event_type_e.ERROR, null) } function __tsip_transac_nict_Any_2_Terminated_X_cancel(a) { return 0 } function __tsip_transac_nict_onterm(a) { a.timer_cancel("E"); a.timer_cancel("F"); a.timer_cancel("K"); return a.deinit() } function __tsip_transac_nict_event_callback(a, c, b) { if (!a) { tsk_utils_log_error("Invalid argument"); return -1 } var d = 0; switch (c) { case tsip_transac_event_type_e.INCOMING_MSG: if (b && b.is_response()) { if (b.is_1xx()) { d = a.fsm_act(tsip_transac_nict_actions_e.I_1xx, b) } else { if (b.is_23456()) { d = a.fsm_act(tsip_transac_nict_actions_e.I_200_to_699, b) } else { tsk_utils_log_warn("Not supported status code: " + b.get_response_code()) } } } break; case tsip_transac_event_type_e.CANCELED: case tsip_transac_event_type_e.TERMINATED: case tsip_transac_event_type_e.TIMEDOUT: break; case tsip_transac_event_type_e.ERROR: d = a.fsm_act(tsip_transac_nict_actions_e.ERROR, b); break; case tsip_transac_event_type_e.TRANSPORT_ERROR: d = a.fsm_act(tsip_transac_nict_actions_e.TRANSPORT_ERROR, b); break } return d } function __tsip_transac_nict_timer_callback(b, a) { if (b) { if (a == b.o_timerE) { b.fsm_act(tsip_transac_nict_actions_e.TIMER_E, null) } else { if (a == b.o_timerF) { b.fsm_act(tsip_transac_nict_actions_e.TIMER_F, null) } else { if (a == b.o_timerK) { b.fsm_act(tsip_transac_nict_actions_e.TIMER_K, null) } } } } } tsip_transac_nist.prototype = Object.create(tsip_transac.prototype); tsip_transac_nist.prototype.__b_debug_state_machine = false; var tsip_transac_nist_actions_e = { CANCEL: tsip_action_type_e.CANCEL, RECV_REQUEST: 10001, SEND_1XX: 10002, SEND_200_to_699: 10003, TIMER_J: 10004, TRANSPORT_ERROR: 10007, ERROR: 10008 }; var tsip_transac_nist_states_e = { STARTED: 0, TRYING: 1, PROCEEDING: 2, COMPLETED: 3, TERMINATED: 4 }; function tsip_transac_nist(b, f, d, c, e) { var a; if (!e || !(a = e.get_stack())) { tsk_utils_log_error("Invalid argument"); return null } tsip_transac.call(this); this.o_lastResponse = null; this.init(tsip_transac_type_e.nist, b, f, d, c, e, tsip_transac_nist_states_e.STARTED, tsip_transac_nist_states_e.TERMINATED); this.set_callback(__tsip_transac_nist_event_callback); this.o_fsm.set_debug_enabled(tsip_transac_nist.prototype.__b_debug_state_machine); this.o_fsm.set_onterm_callback(__tsip_transac_nist_onterm, this); this.o_timerJ = null; this.i_timerJ = b ? 0 : a.o_timers.getJ(); this.o_fsm.set(tsk_fsm_entry.prototype.CreateAlways(tsip_transac_nist_states_e.STARTED, tsip_transac_nist_actions_e.RECV_REQUEST, tsip_transac_nist_states_e.TRYING, tsip_transac_nist_Started_2_Trying_X_request, "tsip_transac_nist_Started_2_Trying_X_request"), tsk_fsm_entry.prototype.CreateAlwaysNothing(tsip_transac_nist_states_e.STARTED, "tsip_transac_nist_Started_2_Started_X_any"), tsk_fsm_entry.prototype.CreateAlways(tsip_transac_nist_states_e.TRYING, tsip_transac_nist_actions_e.SEND_1XX, tsip_transac_nist_states_e.PROCEEDING, tsip_transac_nist_Trying_2_Proceeding_X_send_1xx, "tsip_transac_nist_Trying_2_Proceeding_X_send_1xx"), tsk_fsm_entry.prototype.CreateAlways(tsip_transac_nist_states_e.TRYING, tsip_transac_nist_actions_e.SEND_200_to_699, tsip_transac_nist_states_e.COMPLETED, tsip_transac_nist_Trying_2_Completed_X_send_200_to_699, "tsip_transac_nist_Trying_2_Completed_X_send_200_to_699"), tsk_fsm_entry.prototype.CreateAlways(tsip_transac_nist_states_e.PROCEEDING, tsip_transac_nist_actions_e.SEND_1XX, tsip_transac_nist_states_e.PROCEEDING, tsip_transac_nist_Proceeding_2_Proceeding_X_send_1xx, "tsip_transac_nist_Proceeding_2_Proceeding_X_send_1xx"), tsk_fsm_entry.prototype.CreateAlways(tsip_transac_nist_states_e.PROCEEDING, tsip_transac_nist_actions_e.SEND_200_to_699, tsip_transac_nist_states_e.COMPLETED, tsip_transac_nist_Proceeding_2_Completed_X_send_200_to_699, "tsip_transac_nist_Proceeding_2_Completed_X_send_200_to_699"), tsk_fsm_entry.prototype.CreateAlways(tsip_transac_nist_states_e.PROCEEDING, tsip_transac_nist_actions_e.RECV_REQUEST, tsip_transac_nist_states_e.PROCEEDING, tsip_transac_nist_Proceeding_2_Proceeding_X_request, "tsip_transac_nist_Proceeding_2_Proceeding_X_request"), tsk_fsm_entry.prototype.CreateAlways(tsip_transac_nist_states_e.COMPLETED, tsip_transac_nist_actions_e.RECV_REQUEST, tsip_transac_nist_states_e.COMPLETED, tsip_transac_nist_Completed_2_Completed_X_request, "tsip_transac_nist_Completed_2_Completed_X_request"), tsk_fsm_entry.prototype.CreateAlways(tsip_transac_nist_states_e.COMPLETED, tsip_transac_nist_actions_e.TIMER_J, tsip_transac_nist_states_e.TERMINATED, tsip_transac_nist_Completed_2_Terminated_X_tirmerJ, "tsip_transac_nist_Completed_2_Terminated_X_tirmerJ"), tsk_fsm_entry.prototype.CreateAlways(tsk_fsm.prototype.__i_state_any, tsip_transac_nist_actions_e.TRANSPORT_ERROR, tsip_transac_nist_states_e.TERMINATED, tsip_transac_nist_Any_2_Terminated_X_transportError, "tsip_transac_nist_Any_2_Terminated_X_transportError"), tsk_fsm_entry.prototype.CreateAlways(tsk_fsm.prototype.__i_state_any, tsip_transac_nist_actions_e.ERROR, tsip_transac_nist_states_e.TERMINATED, tsip_transac_nist_Any_2_Terminated_X_Error, "tsip_transac_nist_Any_2_Terminated_X_Error"), tsk_fsm_entry.prototype.CreateAlways(tsk_fsm.prototype.__i_state_any, tsip_transac_nist_actions_e.CANCEL, tsip_transac_nist_states_e.TERMINATED, tsip_transac_nist_Any_2_Terminated_X_cancel, "tsip_transac_nist_Any_2_Terminated_X_cancel")) } tsip_transac_nist.prototype.start = function(a) { var b = -1; if (a && !this.b_running) { this.b_running = true; b = this.fsm_act(tsip_transac_nist_actions_e.RECV_REQUEST, a) } return b }; function tsip_transac_nist_Started_2_Trying_X_request(a) { var b = a[0]; var c = a[1]; return b.get_dialog().callback(tsip_dialog_event_type_e.I_MSG, c) } function tsip_transac_nist_Trying_2_Proceeding_X_send_1xx(a) { var b = a[0]; var c = a[1]; var d; d = b.send(this.s_branch, c) > 0 ? 0 : -1; b.o_lastResponse = c; return d } function tsip_transac_nist_Trying_2_Completed_X_send_200_to_699(a) { var b = a[0]; var c = a[1]; var d; d = b.send(this.s_branch, c) > 0 ? 0 : -1; b.timer_schedule("nist", "J"); b.o_lastResponse = c; return d } function tsip_transac_nist_Proceeding_2_Proceeding_X_send_1xx(a) { var b = a[0]; var c = a[1]; b.o_lastResponse = c; return b.send(this.s_branch, c) > 0 ? 0 : -1 } function tsip_transac_nist_Proceeding_2_Proceeding_X_request(a) { var b = a[0]; if (b.o_lastResponse) { b.send(this.s_branch, b.o_lastResponse) } return 0 } function tsip_transac_nist_Proceeding_2_Completed_X_send_200_to_699(a) { var b = a[0]; var c = a[1]; var d; d = b.send(this.s_branch, c) > 0 ? 0 : -1; b.timer_schedule("nist", "J"); b.o_lastResponse = c; return d } function tsip_transac_nist_Completed_2_Completed_X_request(a) { var b = a[0]; if (b.o_lastResponse) { b.send(this.s_branch, b.o_lastResponse) } return 0 } function tsip_transac_nist_Completed_2_Terminated_X_tirmerJ(a) { return 0 } function tsip_transac_nist_Any_2_Terminated_X_transportError(a) { var b = a[0]; return b.get_dialog().callback(tsip_dialog_event_type_e.TRANSPORT_ERROR, null) } function tsip_transac_nist_Any_2_Terminated_X_Error(a) { var b = a[0]; return b.get_dialog().callback(tsip_dialog_event_type_e.ERROR, null) } function tsip_transac_nist_Any_2_Terminated_X_cancel(a) { return 0 } function __tsip_transac_nist_onterm(a) { a.timer_cancel("J"); return a.deinit() } function __tsip_transac_nist_event_callback(a, c, b) { var d = -1; switch (c) { case tsip_transac_event_type_e.INCOMING_MSG: if (b && b.is_request()) { d = a.fsm_act(tsip_transac_nist_actions_e.RECV_REQUEST, b) } break; case tsip_transac_event_type_e.OUTGOING_MSG: if (b && b.is_response()) { if (b.is_1xx()) { d = a.fsm_act(tsip_transac_nist_actions_e.SEND_1XX, b) } else { if (b.is_23456()) { d = a.fsm_act(tsip_transac_nist_actions_e.SEND_200_to_699, b) } } } break; case tsip_transac_event_type_e.CANCELED: case tsip_transac_event_type_e.TERMINATED: case tsip_transac_event_type_e.TIMEDOUT: break; case tsip_transac_event_type_e.ERROR: d = a.fsm_act(tsip_transac_nist_actions_e.ERROR, b); break; case tsip_transac_event_type_e.TRANSPORT_ERROR: d = a.fsm_act(tsip_transac_nist_actions_e.TRANSPORT_ERROR, b); break } return d } function __tsip_transac_nist_timer_callback(b, a) { if (b) { if (a == b.o_timerJ) { b.fsm_act(tsip_transac_nist_actions_e.TIMER_J, null) } } } var tsip_transport_type_e = { WS: 0, WSS: 1, TCP: 2, TLS: 3, UDP: 4, SCTP: 5, DTLS: 6 }; var tsip_transport_event_type_e = { STARTED: 0, STOPPED: 1, ERROR: 2 }; function tsip_transport(d, c, b, f, e, a) { if (!c) { tsk_utils_log_error("Invalid argument"); return null } switch (d) { case tsip_transport_type_e.WS: this.b_reliable = true; this.s_scheme = "sip"; this.s_protocol = "ws"; this.s_via_protocol = "WS"; this.s_service = "SIP+D2W"; this.o_ws = null; this.__start = function() { return __tsip_transport_ws_start(this) }; this.__stop = function() { return __tsip_transport_ws_stop(this) }; this.__have_socket = function(g) { return __tsip_transport_ws_have_socket(this, g) }; this.__send = function(h, g) { return __tsip_transport_ws_send(this, h, g) }; break; case tsip_transport_type_e.WSS: this.b_reliable = true; this.s_scheme = "sips"; this.s_protocol = "wss"; this.s_via_protocol = "WSS"; this.s_service = "SIPS+D2W"; this.o_ws = null; this.__start = function() { return __tsip_transport_ws_start(this) }; this.__stop = function() { return __tsip_transport_ws_stop(this) }; this.__have_socket = function(g) { return __tsip_transport_ws_have_socket(this, g) }; this.__send = function(h, g) { return __tsip_transport_ws_send(this, h, g) }; break; case tsip_transport_type_e.UDP: if (!tsk_utils_have_webrtc4all()) { tsk_utils_log_error("Transport not supported"); return null } this.b_reliable = false; this.s_scheme = "sip"; this.s_protocol = "udp"; this.s_via_protocol = "UDP"; this.s_service = "SIP+D2U"; this.o_transport = null; this.__start = function() { return __tsip_transport_webrtc4all_start(this) }; this.__stop = function() { return __tsip_transport_webrtc4all_stop(this) }; this.__have_socket = function(g) { return __tsip_transport_webrtc4all_have_socket(this, g) }; this.__send = function(h, g) { return __tsip_transport_webrtc4all_send(this, h, g) }; break; case tsip_transport_type_e.TCP: case tsip_transport_type_e.TLS: case tsip_transport_type_e.SCTP: case tsip_transport_type_e.DTLS: default: tsk_utils_log_error(d + " not supported as a valid SIP transport"); return null } this.e_type = d; this.o_stack = c; this.s_host = b; this.i_port = f; this.s_description = e; this.fn_callback = a; this.b_started = false; return this } tsip_transport.prototype.get_layer = function() { return this.o_stack.o_layer_transport }; tsip_transport.prototype.is_reliable = function() { return this.b_reliable }; tsip_transport.prototype.start = function() { if (this.b_started) { tsk_utils_log_warn("Already started"); return 0 } return this.__start() }; tsip_transport.prototype.stop = function() { if (!this.b_started) { tsk_utils_log_warn("Not started"); return 0 } return this.__stop() }; tsip_transport.prototype.get_local_ip = function() { if (this.e_type == tsip_transport_type_e.WS || this.e_type == tsip_transport_type_e.WSS) { return "df7jal23ls0d.invalid" } else { if (this.o_transport && this.o_transport.localIP) { return this.o_transport.localIP } } tsk_utils_log_error("Not implemented"); return "127.0.0.1" }; tsip_transport.prototype.get_local_port = function() { if (this.e_type == tsip_transport_type_e.WS || this.e_type == tsip_transport_type_e.WSS) { return -1 } else { if (this.o_transport && this.o_transport.localPort) { return this.o_transport.localPort } } tsk_utils_log_error("Not implemented"); return 5060 }; tsip_transport.prototype.get_uri = function(d) { var c = false; var a = tsk_string_format("{0}:{1}{2}{3}:{4};{5};transport={6}", this.s_scheme, c ? "[" : "", this.o_stack.network.aor.s_ip, c ? "]" : "", this.o_stack.network.aor.i_port, d ? "lr" : "", this.s_protocol); var b = tsip_uri.prototype.Parse(a); if (b) { b.e_host_type = c ? tsip_host_type_e.ipv6 : tsip_host_type_e.ipv4 } return b }; tsip_transport.prototype.have_socket = function(a) { return this.__have_socket(a) }; tsip_transport.prototype.send = function(e, b, d, a) { var c = null; if (b.is_request() && (!b.is_ack() || (b.is_ack() && !b.o_hdr_firstVia)) && !b.is_cancel()) { this.message_addvia(e, b); this.message_update_aor(b); this.message_update(b) } else { if (b.is_response()) { if (b.o_hdr_Contact) { this.message_update_aor(b) } if (b.o_hdr_firstVia.i_rport == 0) { b.o_hdr_firstVia.i_rport = b.o_hdr_firstVia.i_port } } } c = b.toString(); tsk_utils_log_info("SEND: " + c); return this.__send(c, c.length) }; function tsip_transport_event(c, a, b, d) { this.o_transport = c; this.e_type = a; this.s_description = b; this.o_data = d; return this } tsip_transport.prototype.signal = function(b, c, d) { if (this.fn_callback) { var a = this.fn_callback; var e = new tsip_transport_event(this, b, c, d); setTimeout(function() { a(e) }, 1) } return 0 }; tsip_transport.prototype.message_addvia = function(b, a) { if (!a.o_hdr_firstVia) { a.o_hdr_firstVia = new tsip_header_Via(tsip_header_Via.prototype.__s_proto_name_default, tsip_header_Via.prototype.__s_proto_version_default, this.s_via_protocol, this.get_local_ip(), this.get_local_port()); a.o_hdr_firstVia.add_param("rport", null) } if (b) { a.o_hdr_firstVia.s_branch = b } else { a.o_hdr_firstVia.s_branch = tsk_string_format("{0}{1}", tsip_transac.prototype.__magic_cookie, tsk_string_random(20)) } return 0 }; tsip_transport.prototype.message_update_aor = function(a) { if (!a.b_update) { return 0 } if (!this.o_stack.network.aor.s_ip && !this.o_stack.network.aor.i_port) { this.o_stack.network.aor.s_ip = this.get_local_ip(); this.o_stack.network.aor.i_port = this.get_local_port() } if (a.o_hdr_Contact && a.o_hdr_Contact.o_uri) { a.o_hdr_Contact.o_uri.s_scheme = this.s_scheme; a.o_hdr_Contact.o_uri.s_host = this.o_stack.network.aor.s_ip; a.o_hdr_Contact.o_uri.i_port = this.o_stack.network.aor.i_port; tsk_params_add(a.o_hdr_Contact.o_uri.ao_params, "transport", this.s_protocol) } return 0 }; tsip_transport.prototype.message_update = function(a) { if (!a.b_update) { return 0 } if (a.s_sigcomp_id) { if (a.o_hdr_firstVia) { a.o_hdr_firstVia.add_param("comp", "sigcomp"); a.o_hdr_firstVia.add_param("sigcomp-id", tsk_string_format('"{0}"', a.s_sigcomp_id)) } if (a.o_hdr_Contact && a.o_hdr_Contact.o_uri) { tsk_params_add(a.o_hdr_Contact.o_uri.ao_params, "sigcomp-id", a.sigcomp_id) } } a.b_update = false; return 0 }; function __tsip_transport_ws_start(b) { if (!b) { tsk_utils_log_error("Invalid argument"); return -1 } var a = tsk_string_is_null_or_empty(b.o_stack.network.s_websocket_server_url) ? tsk_string_format("{0}://{1}:{2}", b.s_protocol, b.s_host, b.i_port) : b.o_stack.network.s_websocket_server_url; tsk_utils_log_info("Connecting to '" + a + "'"); b.o_ws = new WebSocket(a, "sip"); b.o_ws.binaryType = "arraybuffer"; b.o_ws.o_transport = b; b.o_ws.onopen = __tsip_transport_ws_onopen; b.o_ws.onclose = __tsip_transport_ws_onclose; b.o_ws.onmessage = __tsip_transport_ws_onmessage; b.o_ws.onerror = __tsip_transport_ws_onerror; return 0 } function __tsip_transport_ws_stop(a) { if (!a) { tsk_utils_log_error("Invalid argument"); return -1 } if (a.o_ws) { a.o_ws.close() } return 0 } function __tsip_transport_ws_have_socket(a, b) { return a.o_ws == b } function __tsip_transport_ws_send(a, c, b) { if (!a.o_ws) { tsk_utils_log_error("Invalid state"); return 0 } a.o_ws.send(c); return b } function __tsip_transport_ws_onopen(a) { tsk_utils_log_info("__tsip_transport_ws_onopen"); this.o_transport.b_started = true; this.o_transport.signal(tsip_transport_event_type_e.STARTED, a.reason, null) } function __tsip_transport_ws_onclose(a) { tsk_utils_log_info("__tsip_transport_ws_onclose"); this.o_transport.b_started = false; this.o_transport.signal(tsip_transport_event_type_e.STOPPED, a.reason, null) } function __tsip_transport_ws_onmessage(a) { tsk_utils_log_info("__tsip_transport_ws_onmessage"); var b = tsk_ragel_state_create(); if (typeof(a.data) == "string") { tsk_ragel_state_init_str(b, a.data) } else { tsk_ragel_state_init_ai(b, a.data) } var c = tsip_message.prototype.Parse(b, true); if (c) { tsk_utils_log_info("recv=" + c); c.o_socket = this; return this.o_transport.get_layer().handle_incoming_message(c) } else { tsk_utils_log_error("Failed to parse message: " + a.data); return -1 } } function __tsip_transport_ws_onerror(a) { tsk_utils_log_info("__tsip_transport_ws_onerror"); this.o_transport.signal(tsip_transport_event_type_e.ERROR, a.reason, null) } function __tsip_transport_webrtc4all_start(o_self) { if (!o_self) { tsk_utils_log_error("Invalid argument"); return -1 } var b_isInternetExplorer = (WebRtc4all_GetType() == WebRtcType_e.IE); var s_url = tsk_string_is_null_or_empty(o_self.o_stack.network.s_proxy_outbound_host) ? tsk_string_format("{0}://{1}:{2}", o_self.s_protocol, o_self.s_host, o_self.i_port) : tsk_string_format("{0}://{1}:{2}", o_self.s_protocol, o_self.o_stack.network.s_proxy_outbound_host, o_self.o_stack.network.i_proxy_outbound_port); tsk_utils_log_info("Connecting to '" + s_url + "'"); o_self.o_transport = WebRtc4all_GetPlugin().createNetTransport(); if (b_isInternetExplorer) { eval("function o_self.o_transport::OnEvent(i_type, s_data) { return __tsip_transport_webrtc4all_onevent (o_self, i_type, s_data); }") } else { o_self.o_transport.opaque = o_self; o_self.o_transport.setCallbackFuncName("__tsip_transport_webrtc4all_onevent") } try { if (o_self.o_stack.network.s_proxy_outbound_host && o_self.o_stack.network.i_proxy_outbound_port) { o_self.s_host = o_self.o_stack.network.s_proxy_outbound_host; o_self.i_port = o_self.o_stack.network.i_proxy_outbound_port } else { o_self.o_transport.SetDomain(o_self.o_stack.network.o_uri_realm.s_host) } o_self.o_transport.Start(b_isInternetExplorer ? WebRtc4all_GetLooper() : 0); if (o_self.o_transport.defaultDestAddr && o_self.o_transport.defaultDestPort) { o_self.s_host = o_self.o_transport.defaultDestAddr; o_self.i_port = o_self.o_transport.defaultDestPort; tsk_utils_log_info("Transport default destination=" + o_self.s_host + ":" + o_self.i_port) } o_self.b_started = true; o_self.signal(tsip_transport_event_type_e.STARTED, "Network transport started", null) } catch (e) { tsk_utils_log_error(e); return -1 } return 0 } function __tsip_transport_webrtc4all_stop(a) { if (!a) { tsk_utils_log_error("Invalid argument"); return -1 } if (a.o_transport) { a.o_transport.Stop() } return 0 } function __tsip_transport_webrtc4all_have_socket(a, b) { return a.o_transport == b } function __tsip_transport_webrtc4all_send(a, c, b) { if (!a.o_transport) { tsk_utils_log_error("Invalid state"); return 0 } a.o_transport.SendTo(c, a.s_host, a.i_port); return b } function __tsip_transport_webrtc4all_onevent(a, e, c) { tsk_utils_log_info("__tsip_transport_webrtc4all_onevent"); if (c) { var b = tsk_ragel_state_create(); tsk_ragel_state_init_str(b, c); var d = tsip_message.prototype.Parse(b, true); if (d) { tsk_utils_log_info("RECV=" + d.toString()); d.o_socket = a.o_transport; return a.get_layer().handle_incoming_message(d) } else { tsk_utils_log_error("Failed to parse message: " + c); return -1 } } } function tsip_transport_layer(a) { if (!a) { tsk_utils_log_error("Invalid argument"); return null } this.o_stack = a; this.b_running = false; this.ao_transports = new Array() } function tsip_transport_layer_find_result() { this.o_transport = null; this.s_dest_ip = null; this.i_dest_port = 0 } tsip_transport_layer.prototype.get_layer_transac = function() { if (this.o_stack) { return this.o_stack.o_layer_transac } return null }; tsip_transport_layer.prototype.get_layer_dialog = function() { if (this.o_stack) { return this.o_stack.o_layer_dialog } return null }; tsip_transport_layer.prototype.stop = function() { while (this.b_locked) {} this.b_locked = true; for (var a = 0; a < this.ao_transports.length; ++a) { this.ao_transports[a].stop() } this.b_locked = false; return 0 }; tsip_transport_layer.prototype.send = function(c, a) { var b = this.transport_find(a); if (!b || !b.o_transport) { tsk_utils_log_error("Failed to find transport"); return 0 } return b.o_transport.send(c, a, b.s_dest_ip, b.i_dest_port) }; tsip_transport_layer.prototype.transport_new = function(c, b, f, e, a) { var d = null; while (this.b_locked) {} this.b_locked = true; d = new tsip_transport(c, this.o_stack, b, f, e, a); if (d) { this.ao_transports.push(d) } this.b_locked = false; return d }; tsip_transport_layer.prototype.transport_remove = function(b) { if (b) { while (this.b_locked) {} this.b_locked = true; for (var a = 0; a < this.ao_transports.length; ++a) { if (this.ao_transports[a] == b) { this.ao_transports.splice(a, 1); break } } this.b_locked = false } }; tsip_transport_layer.prototype.transport_find = function(b) { if (!b) { tsk_utils_log_error("Invalid argument"); return null } var c = new tsip_transport_layer_find_result(); c.s_dest_ip = this.o_stack.network.s_proxy_cscf_host; c.i_dest_port = this.o_stack.network.i_proxy_cscf_port; if (b.is_request()) { for (var a = 0; a < this.ao_transports.length; ++a) { if (this.ao_transports[a].e_type == this.o_stack.network.e_proxy_cscf_type) { c.o_transport = this.ao_transports[a]; break } } } else { if (b.o_hdr_firstVia) { if (b.o_hdr_firstVia.is_transport_reliable()) {} else { if (b.o_hdr_firstVia.s_maddr) {} else { if (b.o_hdr_firstVia.s_received) { if (b.o_hdr_firstVia.i_rport > 0) { c.s_dest_ip = b.o_hdr_firstVia.s_received; c.i_dest_port = b.o_hdr_firstVia.i_rport } else { c.s_dest_ip = b.o_hdr_firstVia.s_received; c.i_dest_port = b.o_hdr_firstVia.i_port ? b.o_hdr_firstVia.i_port : 5060 } } else { if (!b.o_hdr_firstVia.s_received) { c.s_dest_ip = b.o_hdr_firstVia.s_host; if (b.o_hdr_firstVia.i_port > 0) { c.i_dest_port = b.o_hdr_firstVia.i_port } } } } } while (this.b_locked) {} this.b_locked = true; for (a = 0; a < this.ao_transports.length; ++a) { if (this.ao_transports[a].have_socket(b.o_socket)) { c.o_transport = this.ao_transports[a]; break } } this.b_locked = false } } return c }; tsip_transport_layer.prototype.handle_incoming_message = function(b) { if (b) { var a = this.get_layer_transac(); if (!a) { tsk_utils_log_error("Invalid transaction layer"); return -1 } var c; if ((c = a.handle_incoming_message(b)) != 0) { o_layer_dialog = this.get_layer_dialog(); if (!o_layer_dialog) { tsk_utils_log_error("Invalid dialog layer"); return -1 } c = o_layer_dialog.handle_incoming_message(b) } return c } return 0 }; SIPml = {}; SIPml.b_initialized = false; SIPml.b_initializing = false; SIPml.s_navigator_friendly_name = "unknown"; SIPml.b_navigator_outdated = false; SIPml.s_navigator_version = "unknown"; SIPml.s_system_friendly_name = "unknown"; SIPml.b_webrtc4all_plugin_outdated = false; SIPml.b_webrtc4all_supported = false; SIPml.s_webrtc4all_version = "unknown"; SIPml.b_have_media_stream = false; SIPml.b_webrtc_supported = false; SIPml.setDebugLevel = function(a) { tsk_utils_log_set_level(a === "fatal" ? 1 : (a === "error" ? 2 : (a === "warn" ? 3 : 4))) }; SIPml.startNativeDebug = function() { WebRtc4all_GetPlugin().startDebug() }; SIPml.stopNativeDebug = function() { WebRtc4all_GetPlugin().stopDebug() }; SIPml.getWebRtcType = function() { switch (WebRtc4all_GetType()) { case WebRtcType_e.W4A: case WebRtcType_e.IE: case WebRtcType_e.NPAPI: return "w4a"; case WebRtcType_e.ERICSSON: return "erisson"; case WebRtcType_e.NATIVE: return "native"; default: return "unknown" } }; SIPml.setWebRtcType = function(a) { if (SIPml.isInitialized()) { throw new Error("ERR_ALREADY_INITIALIZED: Engine already initialized.") } return WebRtc4all_SetType(a) }; SIPml.getRunningApps = function() { if (SIPml.getWebRtcType() != "w4a") { throw new Error("ERR_NOT_SUPPORTED: requires webrtc4all plugin") } return WebRtc4all_GetPlugin().runningApps() }; SIPml.setFps = function(a) { if (SIPml.getWebRtcType() != "w4a") { throw new Error("ERR_NOT_SUPPORTED: Setting maximum video size requires webrtc4all plugin") } WebRtc4all_GetPlugin().fps = a; return 0 }; SIPml.setMaxVideoSize = function(a) { if (SIPml.getWebRtcType() != "w4a") { throw new Error("ERR_NOT_SUPPORTED: Setting FPS requires webrtc4all plugin") } WebRtc4all_GetPlugin().maxVideoSize = a; return 0 }; SIPml.setMaxBandwidthUp = function(a) { if (SIPml.getWebRtcType() != "w4a") { throw new Error("ERR_NOT_SUPPORTED: Setting maximum bandwidth requires webrtc4all plugin") } WebRtc4all_GetPlugin().maxBandwidthUp = a; return 0 }; SIPml.setMaxBandwidthDown = function(a) { if (SIPml.getWebRtcType() != "w4a") { throw new Error("ERR_NOT_SUPPORTED: Setting maximum bandwidth requires webrtc4all plugin") } WebRtc4all_GetPlugin().maxBandwidthDown = a; return 0 }; SIPml.setZeroArtifacts = function(a) { if (SIPml.getWebRtcType() != "w4a") { throw new Error("ERR_NOT_SUPPORTED: Setting maximum bandwidth requires webrtc4all plugin") } WebRtc4all_GetPlugin().zeroArtifacts = a; return 0 }; SIPml.getWebRtc4AllVersion = function() { if (!SIPml.isInitialized()) { throw new Error("ERR_NOT_INITIALIZED: Engine not initialized yet. Please call 'SIPml.init()' first") } return SIPml.s_webrtc4all_version }; SIPml.getNavigatorVersion = function() { if (!SIPml.isInitialized()) { throw new Error("ERR_NOT_INITIALIZED: Engine not initialized yet. Please call 'SIPml.init()' first") } return SIPml.s_navigator_version }; SIPml.getNavigatorFriendlyName = function() { if (!SIPml.isInitialized()) { throw new Error("ERR_NOT_INITIALIZED: Engine not initialized yet. Please call 'SIPml.init()' first") } return SIPml.s_navigator_friendly_name }; SIPml.getSystemFriendlyName = function() { if (!SIPml.isInitialized()) { throw new Error("ERR_NOT_INITIALIZED: Engine not initialized yet. Please call 'SIPml.init()' first") } return SIPml.s_system_friendly_name }; SIPml.isNavigatorOutdated = function() { if (!SIPml.isInitialized()) { throw new Error("ERR_NOT_INITIALIZED: Engine not initialized yet. Please call 'SIPml.init()' first") } return SIPml.b_navigator_outdated }; SIPml.isWebRtc4AllPluginOutdated = function() { if (!SIPml.isInitialized()) { throw new Error("ERR_NOT_INITIALIZED: Engine not initialized yet. Please call 'SIPml.init()' first") } return SIPml.b_webrtc4all_plugin_outdated }; SIPml.isWebRtc4AllSupported = function() { if (!SIPml.isInitialized()) { throw new Error("ERR_NOT_INITIALIZED: Engine not initialized yet. Please call 'SIPml.init()' first") } return SIPml.b_webrtc4all_supported }; SIPml.isScreenShareSupported = function() { if (!SIPml.isInitialized()) { throw new Error("ERR_NOT_INITIALIZED: Engine not initialized yet. Please call 'SIPml.init()' first") } return (SIPml.getWebRtcType() === "w4a") || (navigator.userAgent.match("Chrome") && parseInt(navigator.userAgent.match(/Chrome\/(.*) /)[1]) >= 26) }; SIPml.isWebRtcSupported = function() { if (!SIPml.isInitialized()) { throw new Error("ERR_NOT_INITIALIZED: Engine not initialized yet. Please call 'SIPml.init()' first") } return SIPml.b_webrtc_supported }; SIPml.isWebSocketSupported = function() { return tsk_utils_have_websocket() }; SIPml.haveMediaStream = function() { if (!SIPml.isInitialized()) { throw new Error("ERR_NOT_INITIALIZED: Engine not initialized yet. Please call 'SIPml.init()' first") } return SIPml.b_have_media_stream }; SIPml.isReady = function() { return (SIPml.isInitialized() && SIPml.isWebRtcSupported() && SIPml.haveMediaStream()) }; SIPml.isInitialized = function() { return SIPml.b_initialized }; SIPml.init = function(a, b) { if (!SIPml.b_initialized && !SIPml.b_initializing) { SIPml.b_initializing = true; tsk_utils_init_webrtc(); tsk_utils_log_info("User-Agent=" + (navigator.userAgent || "unknown")); SIPml.b_have_media_stream = tsk_utils_have_stream(); SIPml.b_webrtc_supported = tsk_utils_have_webrtc(); SIPml.b_webrtc4all_supported = tsk_utils_have_webrtc4all(); SIPml.s_webrtc4all_version = tsk_utils_webrtc4all_get_version(); SIPml.s_navigator_friendly_name = tsk_utils_get_navigator_friendly_name(); SIPml.s_system_friendly_name = tsk_utils_get_system_friendly_name(); tsk_utils_log_info("WebSocket supported = " + (SIPml.isWebSocketSupported() ? "yes" : "no")); if (tsk_utils_have_webrtc4all()) { tsk_utils_log_info("WebRTC type = " + WebRtc4all_GetType() + " version = " + tsk_utils_webrtc4all_get_version()); if (SIPml.s_webrtc4all_version != "1.35.981") { SIPml.b_webrtc4all_plugin_outdated = true } } tsk_utils_log_info("Navigator friendly name = " + SIPml.s_navigator_friendly_name); if (SIPml.s_navigator_friendly_name == "ie") { var e = new RegExp("MSIE ([0-9]{1,}[.0-9]{0,})"); if (e.exec(navigator.userAgent) != null) { SIPml.s_navigator_version = RegExp.$1 } } tsk_utils_log_info("OS friendly name = " + SIPml.s_system_friendly_name); tsk_utils_log_info("Have WebRTC = " + (tsk_utils_have_webrtc() ? "yes" : "false")); tsk_utils_log_info("Have GUM = " + (tsk_utils_have_stream() ? "yes" : "false")); if (!tsk_utils_have_webrtc()) { if (SIPml.s_navigator_friendly_name == "chrome") { SIPml.b_navigator_outdated = true; return } if (SIPml.s_system_friendly_name == "win" || SIPml.s_system_friendly_name == "windows") { if (SIPml.s_navigator_friendly_name == "ie") { var f = -1; var c = navigator.userAgent; var e = new RegExp("MSIE ([0-9]{1,}[.0-9]{0,})"); if (e.exec(c) != null) { f = parseFloat(RegExp.$1) } if (f < 9) { SIPml.b_navigator_outdated = true; return } if (!tsk_utils_have_webrtc4all()) { return } } } } if (SIPml.b_webrtc_supported && SIPml.b_have_media_stream) { SIPml.b_initialized = true; SIPml.b_initializing = false; tsk_utils_log_info("Engine initialized"); if (a) { a({}) } } else { if (b) { var d = !SIPml.b_webrtc_supported ? "WebRTC not supported" : (!SIPml.b_have_media_stream ? "getUserMedia not supported" : "Internal error"); b({ description: d }) } } } }; SIPml.EventTarget = function() { this.ao_listeners = [] }; SIPml.EventTarget.prototype.addEventListener = function(b, a) { if (!a) { throw new Error("ERR_INVALID_PARAMETER_VALUE: 'listener' must not be null") } if (!b) { throw new Error("ERR_INVALID_PARAMETER_VALUE: 'type' must not be null") } if (!(b instanceof String || typeof b == "string" || b instanceof Array)) { throw new Error("ERR_INVALID_PARAMETER_TYPE: 'type' must be a string or array") } if (b instanceof Array) { var c = this; b.forEach(function(d) { if (!tsk_string_is_null_or_empty(d) && tsk_string_is_string(d)) { c.ao_listeners[d] = a } }) } else { this.ao_listeners[b] = a } }; SIPml.EventTarget.prototype.removeEventListener = function(a) { if (tsk_string_is_string(a) && !tsk_string_is_null_or_empty(a)) { this.ao_listeners[a] = undefined } }; SIPml.EventTarget.prototype.dispatchEvent = function(b) { var a = (this.ao_listeners[b.s_type] || this.ao_listeners["*"]); if (a) { a.call(this, b.o_value) } }; SIPml.Event = function(a, b) { this.type = a; this.description = b ? b.s_phrase : a; this.o_event = b }; SIPml.Event.prototype.getSipResponseCode = function() { var a = this.o_event ? this.o_event.get_message() : null; if (a && a.is_response()) { return a.get_response_code() } return -1 }; SIPml.Event.prototype.getContent = function() { var a = this.o_event ? this.o_event.get_message() : null; if (a) { return a.get_content() } return null }; SIPml.Event.prototype.getContentString = function() { var a = this.o_event ? this.o_event.get_message() : null; if (a) { return a.get_content_as_string() } return null }; SIPml.Event.prototype.getContentType = function() { var a = this.o_event ? this.o_event.get_message() : null; if (a) { return a.get_content_type() } return null }; SIPml.Stack = function(a) { SIPml.init(); SIPml.EventTarget.call(this); if (!a) { throw new Error("ERR_INVALID_PARAMETER_VALUE: null configuration value") } if (tsk_string_is_null_or_empty(a.realm)) { throw new Error("ERR_INVALID_PARAMETER_VALUE: '" + a.realm + "' is not valid as realm value") } if (tsk_string_is_null_or_empty(a.impi)) { throw new Error("ERR_INVALID_PARAMETER_VALUE: '" + a.impi + "' is not valid as impi value") } if (tsk_string_is_null_or_empty(a.impu)) { throw new Error("ERR_INVALID_PARAMETER_VALUE: '" + a.impu + "' is not valid as impu value") } var b = tsip_uri.prototype.Parse(a.impu); if (!b || !b.s_user_name || !b.s_host) { throw new Error("ERR_INVALID_PARAMETER_VALUE: '" + a.impu + "' is not valid as SIP Uri") } var d; var c; if (!SIPml.isWebSocketSupported()) { d = 5060; c = a.realm } else { d = (a.enable_rtcweb_breaker ? 10062 : 10060) + (((new Date().getTime()) % 5) * 1000); c = "ns313841.ovh.net" } this.o_stack = new tsip_stack(a.realm, a.impi, a.impu, c, d); this.o_stack.oStack = this; this.setConfiguration(a); this.o_stack.on_event_stack = function(g) { var f; switch (g.i_code) { case tsip_event_code_e.STACK_STARTING: f = "starting"; break; case tsip_event_code_e.STACK_STARTED: f = "started"; break; case tsip_event_code_e.STACK_STOPPING: f = "stopping"; break; case tsip_event_code_e.STACK_STOPPED: f = "stopped"; break; case tsip_event_code_e.STACK_FAILED_TO_START: f = "failed_to_start"; break; case tsip_event_code_e.STACK_FAILED_TO_STOP: f = "failed_to_stop"; break } if (f) { g.o_stack.oStack.dispatchEvent({ s_type: f, o_value: new SIPml.Stack.Event(f, g) }) } }; this.o_stack.on_event_dialog = function(j) { var f = null; var g = j.o_session.i_id; var h = j.o_session.o_stack.oStack.ao_sessions[g]; if (!h) { tsk_utils_log_warn("Cannot find session with id = " + g); return } switch (j.i_code) { case tsip_event_code_e.DIALOG_TRANSPORT_ERROR: f = "transport_error"; break; case tsip_event_code_e.DIALOG_GLOBAL_ERROR: f = "global_error"; break; case tsip_event_code_e.DIALOG_MESSAGE_ERROR: f = "message_error"; break; case tsip_event_code_e.DIALOG_WEBRTC_ERROR: f = "webrtc_error"; break; case tsip_event_code_e.DIALOG_REQUEST_INCOMING: f = "i_request"; break; case tsip_event_code_e.DIALOG_REQUEST_OUTGOING: f = "o_request"; break; case tsip_event_code_e.DIALOG_REQUEST_CANCELLED: f = "cancelled_request"; break; case tsip_event_code_e.DIALOG_REQUEST_SENT: f = "sent_request"; break; case tsip_event_code_e.DIALOG_MEDIA_ADDED: f = "media_added"; break; case tsip_event_code_e.DIALOG_MEDIA_REMOVED: f = "media_removed"; break; case tsip_event_code_e.DIALOG_CONNECTING: f = "connecting"; break; case tsip_event_code_e.DIALOG_CONNECTED: f = "connected"; break; case tsip_event_code_e.DIALOG_BFCP_INFO: f = "bfcp_info"; break; case tsip_event_code_e.DIALOG_TERMINATING: f = "terminating"; break; case tsip_event_code_e.DIALOG_TERMINATED: f = "terminated"; j.o_session.o_stack.oStack.ao_sessions[g] = undefined; break; default: break } if (f) { h.dispatchEvent({ s_type: f, o_value: new SIPml.Session.Event(h, f, j) }) } }; this.o_stack.on_event_message = function(j) { var f = null; var g = j.o_session.i_id; var h = j.o_session.o_stack.oStack.ao_sessions[g]; switch (j.e_message_type) { case tsip_event_message_type_e.I_MESSAGE: f = "i_new_message"; break; case tsip_event_message_type_e.AO_MESSAGE: f = "i_ao_request"; break } if (f) { if (f == "i_new_message") { var k = new SIPml.Stack.Event(f, j); k.newSession = new SIPml.Session.Message(j.o_session); j.o_session.o_stack.oStack.ao_sessions[g] = k.newSession; j.o_session.o_stack.oStack.dispatchEvent({ s_type: f, o_value: k }) } else { if (h) { h.dispatchEvent({ s_type: f, o_value: new SIPml.Session.Event(h, f, j) }) } else { tsk_utils_log_warn("Cannot find session with id = " + g + " and event = " + j.e_invite_type) } } } }; this.o_stack.on_event_publish = function(j) { var f = null; var g = j.o_session.i_id; var h = j.o_session.o_stack.oStack.ao_sessions[g]; if (!h) { tsk_utils_log_warn("Cannot find session with id = " + g + " and event = " + j.e_invite_type); return } switch (j.e_publish_type) { case tsip_event_publish_type_e.I_PUBLISH: break; case tsip_event_publish_type_e.I_UNPUBLISH: break; case tsip_event_publish_type_e.AO_PUBLISH: case tsip_event_publish_type_e.AO_UNPUBLISH: f = "i_ao_request"; break } if (f) { h.dispatchEvent({ s_type: f, o_value: new SIPml.Session.Event(h, f, j) }) } }; this.o_stack.on_event_subscribe = function(j) { var f = null; var g = j.o_session.i_id; var h = j.o_session.o_stack.oStack.ao_sessions[g]; if (!h) { tsk_utils_log_warn("Cannot find session with id = " + g + " and event = " + j.e_invite_type); return } switch (j.e_subscribe_type) { case tsip_event_subscribe_type_e.I_SUBSCRIBE: break; case tsip_event_subscribe_type_e.I_UNSUBSRIBE: break; case tsip_event_subscribe_type_e.AO_SUBSCRIBE: case tsip_event_subscribe_type_e.AO_UNSUBSCRIBE: case tsip_event_subscribe_type_e.AO_NOTIFY: f = "i_ao_request"; break; case tsip_event_subscribe_type_e.I_NOTIFY: f = "i_notify"; break } if (f) { h.dispatchEvent({ s_type: f, o_value: new SIPml.Session.Event(h, f, j) }) } }; this.o_stack.on_event_invite = function(k) { var f = null; var h = k.o_session.i_id; var j = k.o_session.o_stack.oStack.ao_sessions[h]; if (!j) { switch (k.e_invite_type) { case tsip_event_invite_type_e.I_NEW_CALL: case tsip_event_invite_type_e.M_STREAM_LOCAL_REQUESTED: case tsip_event_invite_type_e.M_STREAM_LOCAL_ACCEPTED: case tsip_event_invite_type_e.M_STREAM_LOCAL_REFUSED: case tsip_event_invite_type_e.M_BFCP_INFO: break; case tsip_event_invite_type_e.M_STREAM_LOCAL_ADDED: case tsip_event_invite_type_e.M_STREAM_REMOTE_ADDED: case tsip_event_invite_type_e.M_STREAM_LOCAL_REMOVED: case tsip_event_invite_type_e.M_STREAM_REMOTE_REMOVED: case tsip_event_invite_type_e.I_AO_REQUEST: tsk_utils_log_info("Not notifying to session with id = " + h + " for event = " + k.e_invite_type); return; default: tsk_utils_log_warn("Cannot find session with id = " + h + " and event = " + k.e_invite_type); return } } var n = function(e, p, q, o) { if (p) { if (!o && p.videoTracks.length > 0) { if (window.HTMLVideoElement && e instanceof window.HTMLVideoElement) { if ((e.src = q)) { e.play() } } return true } if (o && p.audioTracks.length > 0) { if (window.HTMLAudioElement && e instanceof window.HTMLAudioElement) { if ((e.src = q)) { e.play() } } return true } } }; var m = function(e) { var o = e ? k.o_session.get_stream_local() : k.o_session.get_stream_remote(); var p = e ? k.o_session.get_url_local() : k.o_session.get_url_remote(); if (n((e ? j.videoLocal : j.videoRemote), o, p, false)) { l(e ? "m_stream_video_local_added" : "m_stream_video_remote_added") } if (n((e ? j.audioLocal : j.audioRemote), o, p, true)) { l(e ? "m_stream_audio_local_added" : "m_stream_audio_remote_added") } }; var g = function(e) { var o = e ? k.o_session.get_stream_local() : k.o_session.get_stream_remote(); if (n((e ? j.videoLocal : j.videoRemote), o, null, false)) { l(e ? "m_stream_video_local_removed" : "m_stream_video_remote_removed") } if (n((e ? j.audioLocal : j.audioRemote), o, null, true)) { l(e ? "m_stream_audio_local_removed" : "m_stream_audio_remote_removed") } }; var l = function(e) { if (e) { switch (e) { case "i_new_call": case "m_permission_requested": case "m_permission_accepted": case "m_permission_refused": var o = new SIPml.Stack.Event(e, k); if (e == "i_new_call") { o.newSession = new SIPml.Session.Call(k.o_session); k.o_session.o_stack.oStack.ao_sessions[h] = o.newSession } k.o_session.o_stack.oStack.dispatchEvent({ s_type: e, o_value: o }); break; default: j.dispatchEvent({ s_type: e, o_value: new SIPml.Session.Event(j, e, k) }); break } } }; switch (k.e_invite_type) { case tsip_event_invite_type_e.I_NEW_CALL: f = "i_new_call"; break; case tsip_event_invite_type_e.I_ECT_NEW_CALL: f = "i_ect_new_call"; break; case tsip_event_invite_type_e.I_AO_REQUEST: f = "i_ao_request"; break; case tsip_event_invite_type_e.M_EARLY_MEDIA: f = "m_early_media"; break; case tsip_event_invite_type_e.M_STREAM_LOCAL_REQUESTED: f = "m_permission_requested"; break; case tsip_event_invite_type_e.M_STREAM_LOCAL_ACCEPTED: f = "m_permission_accepted"; break; case tsip_event_invite_type_e.M_STREAM_LOCAL_REFUSED: f = "m_permission_refused"; break; case tsip_event_invite_type_e.M_STREAM_LOCAL_ADDED: return m(true); case tsip_event_invite_type_e.M_STREAM_LOCAL_REMOVED: return g(true); case tsip_event_invite_type_e.M_STREAM_REMOTE_ADDED: return m(false); case tsip_event_invite_type_e.M_STREAM_REMOTE_REMOVED: return g(false); case tsip_event_invite_type_e.M_LOCAL_HOLD_OK: f = "m_local_hold_ok"; break; case tsip_event_invite_type_e.M_LOCAL_HOLD_NOK: f = "m_local_hold_nok"; break; case tsip_event_invite_type_e.M_LOCAL_RESUME_OK: f = "m_local_resume_ok"; break; case tsip_event_invite_type_e.M_LOCAL_RESUME_NOK: f = "m_local_resume_nok"; break; case tsip_event_invite_type_e.M_REMOTE_HOLD: f = "m_remote_hold"; break; case tsip_event_invite_type_e.M_REMOTE_RESUME: f = "m_remote_resume"; break; case tsip_event_invite_type_e.M_BFCP_INFO: f = "m_bfcp_info"; break; case tsip_event_invite_type_e.O_ECT_TRYING: f = "o_ect_trying"; break; case tsip_event_invite_type_e.O_ECT_ACCEPTED: f = "o_ect_accepted"; break; case tsip_event_invite_type_e.O_ECT_COMPLETED: f = "o_ect_completed"; break; case tsip_event_invite_type_e.I_ECT_COMPLETED: f = "i_ect_completed"; break; case tsip_event_invite_type_e.O_ECT_FAILED: f = "o_ect_failed"; break; case tsip_event_invite_type_e.I_ECT_FAILED: f = "i_ect_failed"; break; case tsip_event_invite_type_e.O_ECT_NOTIFY: f = "o_ect_notify"; break; case tsip_event_invite_type_e.I_ECT_NOTIFY: f = "i_ect_notify"; break; case tsip_event_invite_type_e.I_ECT_REQUESTED: f = "i_ect_requested"; break; case tsip_event_invite_type_e.DIALOG_REQUEST_INCOMING: if (k.o_message) { if (k.o_message.is_info()) { f = "i_info" } } break; default: break } l(f) } }; SIPml.Stack.prototype = Object.create(SIPml.EventTarget.prototype); SIPml.Stack.prototype.ao_sessions = []; SIPml.Stack.prototype.setConfiguration = function(c) { if (c.realm && !tsk_string_is_string(c.realm)) { throw new Error("ERR_INVALID_PARAMETER_TYPE: '" + typeof c.realm + "' not a valid type for realm. String is expected") } if (c.impi && !tsk_string_is_string(c.impi)) { throw new Error("ERR_INVALID_PARAMETER_TYPE: '" + typeof c.impi + "' not a valid type for impi. String is expected") } if (c.impu && !tsk_string_is_string(c.impu)) { throw new Error("ERR_INVALID_PARAMETER_TYPE: '" + typeof c.impu + "' not a valid type for impu. String is expected") } if (c.password && !tsk_string_is_string(c.password)) { throw new Error("ERR_INVALID_PARAMETER_TYPE: '" + typeof c.password + "' not a valid type for password. String is expected") } if (c.display_name && !tsk_string_is_string(c.display_name)) { throw new Error("ERR_INVALID_PARAMETER_TYPE: '" + typeof c.display_name + "' not a valid type for display_name. String is expected") } if (c.websocket_proxy_url && !tsk_string_is_string(c.websocket_proxy_url)) { throw new Error("ERR_INVALID_PARAMETER_TYPE: '" + typeof c.websocket_proxy_url + "' not a valid type for websocket_proxy_url. String is expected") } if (c.outbound_proxy_url && !tsk_string_is_string(c.outbound_proxy_url)) { throw new Error("ERR_INVALID_PARAMETER_TYPE: '" + typeof c.outbound_proxy_url + "' not a valid type for outbound_proxy_url. String is expected") } if (c.sip_headers && typeof c.sip_headers != "Array" && !(c.sip_headers instanceof Array)) { throw new Error("ERR_INVALID_PARAMETER_TYPE: '" + typeof c.sip_headers + "' not a valid type for sip_headers. Array is expected") } if (c.events_listener) { this.addEventListener(c.events_listener.events, c.events_listener.listener) } var f = !!c.enable_rtcweb_breaker; var g = !!c.enable_click2call; var h = (c.enable_early_ims == undefined) ? true : !!c.enable_early_ims; var d = !!c.enable_media_stream_cache; var a = c.bandwidth ? c.bandwidth : { audio: undefined, video: undefined }; var e = c.video_size ? c.video_size : { minWidth: undefined, minHeight: undefined, maxWidth: undefined, maxHeight: undefined }; var b = this.o_stack; tsk_utils_log_info("s_websocket_server_url=" + (c.websocket_proxy_url || "(null)")); tsk_utils_log_info("s_sip_outboundproxy_url=" + (c.outbound_proxy_url || "(null)")); tsk_utils_log_info("b_rtcweb_breaker_enabled=" + (f ? "yes" : "no")); tsk_utils_log_info("b_click2call_enabled=" + (g ? "yes" : "no")); tsk_utils_log_info("b_early_ims=" + (h ? "yes" : "no")); tsk_utils_log_info("b_enable_media_stream_cache=" + (d ? "yes" : "no")); tsk_utils_log_info("o_bandwidth=" + JSON.stringify(a)); tsk_utils_log_info("o_video_size=" + JSON.stringify(e)); b.set(tsip_stack.prototype.SetPassword(c.password), tsip_stack.prototype.SetDisplayName(c.display_name), tsip_stack.prototype.SetProxyOutBoundUrl(c.outbound_proxy_url), tsip_stack.prototype.SetRTCWebBreakerEnabled(f), tsip_stack.prototype.SetClick2CallEnabled(g), tsip_stack.prototype.SetSecureTransportEnabled(f), tsip_stack.prototype.SetEarlyIMSEnabled(h), tsip_stack.prototype.SetWebsocketServerUrl(c.websocket_proxy_url), tsip_stack.prototype.SetIceServers(c.ice_servers), tsip_stack.prototype.SetMediaStreamCacheEnabled(d), tsip_stack.prototype.SetBandwidth(a), tsip_stack.prototype.SetVideoSize(e)); if (c.sip_headers) { c.sip_headers.forEach(function(j) { if (j && !tsk_string_is_null_or_empty(j.name) && (!j.value || tsk_string_is_string(j.value))) { b.set(tsip_stack.prototype.SetHeader(j.name, j.value)) } }) } return 0 }; SIPml.Stack.prototype.start = function() { return this.o_stack.start() }; SIPml.Stack.prototype.stop = function(a) { return this.o_stack.stop(a) }; SIPml.Stack.prototype.newSession = function(a, c) { var d; var b; if (a == "register") { d = new tsip_session_register(this.o_stack); b = SIPml.Session.Registration } else { if (a == "message") { d = new tsip_session_message(this.o_stack); b = SIPml.Session.Message } else { if (a == "publish") { d = new tsip_session_publish(this.o_stack); b = SIPml.Session.Publish } else { if (a == "subscribe") { d = new tsip_session_subscribe(this.o_stack); b = SIPml.Session.Subscribe } else { if (a == "call-audio" || a == "call-audiovideo" || a == "call-video" || a == "call-screenshare") { d = new tsip_session_invite(this.o_stack); d.s_type = a; b = SIPml.Session.Call } else { throw new Error("ERR_INVALID_PARAMETER_VALUE: '" + a + "' not valid as session type") } } } } } d.b_local = true; var e = new b(d, c); this.ao_sessions[e.getId()] = e; return e }; SIPml.Stack.Event = function(a, b) { SIPml.Event.call(this, a, b) }; SIPml.Stack.Event.prototype = Object.create(SIPml.Event.prototype); SIPml.Session = function(b, a) { SIPml.EventTarget.call(this); if (!b) { throw new Error("ERR_INVALID_PARAMETER_VALUE: Invalid session value") } this.o_session = b; this.setConfiguration(a) }; SIPml.Session.prototype = Object.create(SIPml.EventTarget.prototype); SIPml.Session.prototype.o_session = null; SIPml.Session.prototype.o_session = null; SIPml.Session.prototype.o_configuration = null; SIPml.Session.prototype.getId = function() { return this.o_session.get_id() }; SIPml.Session.prototype.setConfiguration = function(b) { if (!b) { return } var c = this.o_session; if (b.events_listener) { this.addEventListener(b.events_listener.events, b.events_listener.listener) } if (this instanceof SIPml.Session.Call) { c.set(tsip_session.prototype.SetBandwidth(b.bandwidth ? b.bandwidth : { audio: undefined, video: undefined }), tsip_session.prototype.SetVideoSize(b.video_size ? b.video_size : { minWidth: undefined, minHeight: undefined, maxWidth: undefined, maxHeight: undefined }), tsip_session.prototype.SetScreencastWindowID(b.screencast_window_id ? b.screencast_window_id : 0)); this.videoLocal = b.video_local; this.videoRemote = b.video_remote; this.audioRemote = b.audio_remote; this.audioLocal = b.audio_local; var a = function(d, f, g, e) { if (f) { if (!e && f.videoTracks.length > 0) { if (window.HTMLVideoElement && d instanceof window.HTMLVideoElement) { if (d.src == g) { return false } else { if (d.src = g) { d.play() } } } return true } if (e && f.audioTracks.length > 0) { if (window.HTMLAudioElement && d instanceof window.HTMLAudioElement) { if (d.src == g) { return false } else { if (d.src = g) { d.play() } } } return true } } }; if (a(this.videoLocal, c.get_stream_local(), c.get_url_local(), false)) { this.dispatchEvent({ s_type: "m_stream_video_local_added", o_value: new SIPml.Session.Event(this, "m_stream_video_local_added") }) } if (a(this.videoRemote, c.get_stream_remote(), c.get_url_remote(), false)) { this.dispatchEvent({ s_type: "m_stream_video_remote_added", o_value: new SIPml.Session.Event(this, "m_stream_video_remote_added") }) } if (a(this.audioLocal, c.get_stream_local(), c.get_url_local(), true)) { this.dispatchEvent({ s_type: "m_stream_audio_local_added", o_value: new SIPml.Session.Event(this, "m_stream_audio_local_added") }) } if (a(this.audioRemote, c.get_stream_remote(), c.get_url_remote(), true)) { this.dispatchEvent({ s_type: "m_stream_audio_remote_added", o_value: new SIPml.Session.Event(this, "m_stream_audio_remote_added") }) } } if (b.sip_headers) { b.sip_headers.forEach(function(d) { if (d && !tsk_string_is_null_or_empty(d.name) && (!d.value || tsk_string_is_string(d.value))) { c.set(tsip_session.prototype.SetHeader(d.name, d.value)) } }) } if (b.sip_caps) { b.sip_caps.forEach(function(d) { if (d && !tsk_string_is_null_or_empty(d.name) && (!d.value || tsk_string_is_string(d.value))) { c.set(tsip_session.prototype.SetCaps(d.name, d.value)) } }) } if (b.expires) { c.set(tsip_session.prototype.SetExpires(b.expires)) } if (b.from) { c.set(tsip_session.prototype.SetFromStr(b.from)) } }; SIPml.Session.prototype.getRemoteUri = function() { return (this.o_session.b_local ? this.o_session.o_uri_to : this.o_session.o_uri_from).toString() }; SIPml.Session.prototype.getRemoteFriendlyName = function() { var a = this.o_session.b_local ? this.o_session.o_uri_to : this.o_session.o_uri_from; return a.s_display_name ? a.s_display_name : a.s_user_name }; SIPml.Session.prototype.reject = function(a) { this.setConfiguration(a); return this.o_session.reject() }; SIPml.Session.prototype.accept = function(a) { this.setConfiguration(a); return this.o_session.accept() }; SIPml.Session.Event = function(c, a, b) { SIPml.Event.call(this, a, b); this.session = c }; SIPml.Session.Event.prototype = Object.create(SIPml.Event.prototype); SIPml.Session.Event.prototype.getTransferDestinationFriendlyName = function() { var a = this.o_event ? this.o_event.get_message() : null; if (a) { var b = a.get_header(tsip_header_type_e.Refer_To); if (b && b.o_uri) { return (b.s_display_name ? b.s_display_name : b.o_uri.s_user_name) } } return null }; SIPml.Session.Registration = function(b, a) { SIPml.Session.call(this, b, a) }; SIPml.Session.Registration.prototype = Object.create(SIPml.Session.prototype); SIPml.Session.Registration.prototype.register = function(a) { this.setConfiguration(a); return this.o_session.register() }; SIPml.Session.Registration.prototype.unregister = function(a) { this.setConfiguration(a); return this.o_session.unregister() }; SIPml.Session.Call = function(b, a) { SIPml.Session.call(this, b, a); switch (b.s_type) { case "call-audio": this.mediaType = tmedia_type_e.AUDIO; break; case "call-audiovideo": this.mediaType = tmedia_type_e.AUDIO_VIDEO; break; case "call-video": this.mediaType = tmedia_type_e.VIDEO; break; case "call-screenshare": this.mediaType = tmedia_type_e.SCREEN_SHARE; break } }; SIPml.Session.Call.prototype = Object.create(SIPml.Session.prototype); SIPml.Session.Call.prototype.videoLocal = null; SIPml.Session.Call.prototype.videoRemote = null; SIPml.Session.Call.prototype.call = function(a, b) { if (tsk_string_is_null_or_empty(a)) { throw new Error("ERR_INVALID_PARAMETER_VALUE: 'to' must not be null") } if (!SIPml.haveMediaStream()) { throw new Error("ERR_NOT_READY: Media engine not ready yet") } this.o_session.set(tsip_session.prototype.SetToStr(a)); this.setConfiguration(b); return this.o_session.call(this.mediaType) }; SIPml.Session.Call.prototype.hangup = function(a) { this.setConfiguration(a); return this.o_session.hangup() }; SIPml.Session.Call.prototype.hold = function(a) { this.setConfiguration(a); return this.o_session.hold(this.mediaType) }; SIPml.Session.Call.prototype.resume = function(a) { this.setConfiguration(a); return this.o_session.resume(this.mediaType) }; SIPml.Session.Call.prototype.info = function(b, c, a) { this.setConfiguration(a); return this.o_session.info(b, c) }; SIPml.Session.Call.prototype.dtmf = function(b, a) { this.setConfiguration(a); return this.o_session.dtmf(b) }; SIPml.Session.Call.prototype.transfer = function(a, b) { this.setConfiguration(b); return this.o_session.transfer(a) }; SIPml.Session.Call.prototype.acceptTransfer = function(a) { this.setConfiguration(a); return this.o_session.transfer_accept() }; SIPml.Session.Call.prototype.rejectTransfer = function(a) { this.setConfiguration(a); return this.o_session.transfer_reject() }; SIPml.Session.Call.prototype.startBfcpShare = function(a) { if (SIPml.getWebRtcType() != "w4a") { throw new Error("ERR_NOT_SUPPORTED: BFCP sharing requires webrtc4all plugin") } this.setConfiguration(a); return this.o_session.start_bfcp_share() }; SIPml.Session.Call.prototype.stopBfcpShare = function(a) { if (SIPml.getWebRtcType() != "w4a") { throw new Error("ERR_NOT_SUPPORTED: BFCP sharing requires webrtc4all plugin") } this.setConfiguration(a); return this.o_session.stop_bfcp_share() }; SIPml.Session.Call.prototype.mute = function(b, a) { if ((b !== "audio" && b !== "video") || typeof a != "boolean") { throw new Error("ERR_INVALID_ARGUMENT") } return this.o_session.set_mute(b, a) }; SIPml.Session.Message = function(b, a) { SIPml.Session.call(this, b, a) }; SIPml.Session.Message.prototype = Object.create(SIPml.Session.prototype); SIPml.Session.Message.prototype.send = function(a, c, d, b) { if (tsk_string_is_null_or_empty(a)) { throw new Error("ERR_INVALID_PARAMETER_VALUE: 'to' must not be null") } this.setConfiguration(b); this.o_session.set(tsip_session.prototype.SetToStr(a)); return this.o_session.send(c, d) }; SIPml.Session.Publish = function(b, a) { SIPml.Session.call(this, b, a); b.set(tsip_session.prototype.SetToUri(b.get_stack().identity.o_uri_impu)) }; SIPml.Session.Publish.prototype = Object.create(SIPml.Session.prototype); SIPml.Session.Publish.prototype.publish = function(b, c, a) { this.setConfiguration(a); return this.o_session.publish(b, c) }; SIPml.Session.Publish.prototype.unpublish = function(a) { this.setConfiguration(a); return this.o_session.unpublish() }; SIPml.Session.Subscribe = function(b, a) { SIPml.Session.call(this, b, a) }; SIPml.Session.Subscribe.prototype = Object.create(SIPml.Session.prototype); SIPml.Session.Subscribe.prototype.subscribe = function(a, b) { if (tsk_string_is_null_or_empty(a)) { throw new Error("ERR_INVALID_PARAMETER_VALUE: 'to' must not be null") } this.o_session.set(tsip_session.prototype.SetToStr(a)); this.setConfiguration(b); return this.o_session.subscribe() }; SIPml.Session.Subscribe.prototype.unsubscribe = function(a) { this.setConfiguration(a); return this.o_session.unsubscribe() };